第一步:在goods表格增加一个字段 is_bonus 类型 tinyint 默认为1 (1是可以使用红包)
第二步:修改后台模板页 goods_info.htm
<tr id=”alone_sale_1″>
<td id=”alone_sale_2″>{$lang.lab_is_on_sale}</td>
<td id=”alone_sale_3″><input type=”checkbox” name=”is_on_sale” value=”1″ {if $goods.is_on_sale}checked=”checked”{/if} /> {$lang.on_sale_desc}</td>
</tr>
<tr id=”alone_sale_1″>
<td id=”alone_sale_2″>红包使用</td>
<td id=”alone_sale_3″><input type=”checkbox” name=”is_bonus” value=”1″ {if $goods.is_bonus}checked=”checked”{/if} /> 打勾表示允许用使用红包,否则不允许使用。</td>
</tr>
<tr>
<td>{$lang.lab_is_alone_sale}</td>
<td><input type=”checkbox” name=”is_alone_sale” value=”1″ {if $goods.is_alone_sale}checked=”checked”{/if} /> {$lang.alone_sale}</td>
</tr>
<tr id=”alone_sale_1″> <td id=”alone_sale_2″>{$lang.lab_is_on_sale}</td> <td id=”alone_sale_3″><input type=”checkbox” name=”is_on_sale” value=”1″ {if $goods.is_on_sale}checked=”checked”{/if} /> {$lang.on_sale_desc}</td> </tr>
<tr
id=”alone_sale_1″> <td id=”alone_sale_2″>红包使用</td> <td id=”alone_sale_3″><input type=”checkbox” name=”is_bonus” value=”1″ {if $goods.is_bonus}checked=”checked”{/if} /> 打勾表示允许用使用红包,否则不允许使用。</td> </tr>
<tr> <td>{$lang.lab_is_alone_sale}</td> <td><input type=”checkbox” name=”is_alone_sale” value=”1″ {if $goods.is_alone_sale}checked=”checked”{/if} /> {$lang.alone_sale}</td> </tr>
这个大概在230行左右
*注:我没有修改语言包,如果你需要可以先去修改语言包,然后这里调言(呵呵)
第三步:修改后台goods.php文件
在添加新商品 编辑商品 下面修改
158行和230行左右的 $goods数组加下下面红色的部分(我这里默认是可以使用红包的)
$goods = array(
‘goods_id’ => 0,
‘goods_desc’ => ”,
‘cat_id’ => $last_choose[0],
‘brand_id’ => $last_choose[1],
‘is_on_sale’ => ’1′,
‘is_bonus’
=> ’1′,
‘is_alone_sale’ => ’1′,
‘is_shipping’ => ’0′,
‘other_cat’ => array(), // 扩展分类
‘goods_type’ => 0, // 商品类型
‘shop_price’ => 0,
‘promote_price’ => 0,
‘market_price’ => 0,
‘integral’ => 0,
‘goods_number’ => $_CFG['default_storage'],
‘warn_number’ => 1,
‘promote_start_date’ => local_date(‘Y-m-d’),
‘promote_end_date’ => local_date(‘Y-m-d’, local_strtotime(‘+1 month’)),
‘goods_weight’ => 0,
‘give_integral’ => -1,
‘rank_integral’ => -1
);
插入和修改部份修改的代码:
805行
$is_on_sale = isset($_POST['is_on_sale']) ? 1 : 0;
$is_bonus
= isset($_POST['is_bonus']) ? 1 : 0;
$is_alone_sale = isset($_POST['is_alone_sale']) ? 1 : 0;
/* 入库 */
if ($is_insert)
{
if ($code == ”)
{
$sql = “INSERT INTO ” . $ecs->table(‘goods’) . ” (goods_name, goods_name_style, goods_sn, ” .
“cat_id, brand_id, shop_price, market_price, is_promote, promote_price, ” .
“promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, ” .
“seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, ” .
“is_on_sale,is_bonus,is_alone_sale,
is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, suppliers_id)” .
“VALUES (‘$_POST[goods_name]‘, ‘$goods_name_style’, ‘$goods_sn’, ‘$catgory_id’, ” .
“‘$brand_id’, ‘$shop_price’, ‘$market_price’, ‘$is_promote’,'$promote_price’, “.
“‘$promote_start_date’, ‘$promote_end_date’, ‘$goods_img’, ‘$goods_thumb’, ‘$original_img’, “.
“‘$_POST[keywords]‘, ‘$_POST[goods_brief]‘, ‘$_POST[seller_note]‘, ‘$goods_weight’, ‘$goods_number’,”.
” ‘$warn_number’, ‘$_POST[integral]‘, ‘$give_integral’, ‘$is_best’, ‘$is_new’, ‘$is_hot’, ‘$is_on_sale’,
‘$is_bonus’,’$is_alone_sale’, $is_shipping, “.
” ‘$_POST[goods_desc]‘, ‘” . gmtime() . “‘, ‘”. gmtime() .”‘, ‘$goods_type’, ‘$rank_integral’, ‘$suppliers_id’)”;
}
else
{
$sql = “INSERT INTO ” . $ecs->table(‘goods’) . ” (goods_name, goods_name_style, goods_sn, ” .
“cat_id, brand_id, shop_price, market_price, is_promote, promote_price, ” .
“promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, ” .
“seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_real, ” .
“is_on_sale,is_bonusis_alone_sale,
is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral)” .
“VALUES (‘$_POST[goods_name]‘, ‘$goods_name_style’, ‘$goods_sn’, ‘$catgory_id’, ” .
“‘$brand_id’, ‘$shop_price’, ‘$market_price’, ‘$is_promote’,'$promote_price’, “.
“‘$promote_start_date’, ‘$promote_end_date’, ‘$goods_img’, ‘$goods_thumb’, ‘$original_img’, “.
“‘$_POST[keywords]‘, ‘$_POST[goods_brief]‘, ‘$_POST[seller_note]‘, ‘$goods_weight’, ‘$goods_number’,”.
” ‘$warn_number’, ‘$_POST[integral]‘, ‘$give_integral’, ‘$is_best’, ‘$is_new’, ‘$is_hot’, 0, ‘$is_on_sale’,‘$is_bonus’,$is_alone_sale’,
$is_shipping, “.
” ‘$_POST[goods_desc]‘, ‘” . gmtime() . “‘, ‘”. gmtime() .”‘, ‘$goods_type’, ‘$code’, ‘$rank_integral’)”;
}
}
901行:
$sql .= “keywords = ‘$_POST[keywords]‘, ” .
“goods_brief = ‘$_POST[goods_brief]‘, ” .
“seller_note = ‘$_POST[seller_note]‘, ” .
“goods_weight = ‘$goods_weight’,” .
“goods_number = ‘$goods_number’, ” .
“warn_number = ‘$warn_number’, ” .
“integral = ‘$_POST[integral]‘, ” .
“give_integral = ‘$give_integral’, ” .
“rank_integral = ‘$rank_integral’, ” .
“is_best = ‘$is_best’, ” .
“is_new = ‘$is_new’, ” .
“is_hot = ‘$is_hot’, ” .
“is_bonus
= ‘$is_bonus’, ” .
“is_on_sale = ‘$is_on_sale’, ” .
“is_alone_sale = ‘$is_alone_sale’, ” .
“is_shipping = ‘$is_shipping’, ” .
“goods_desc = ‘$_POST[goods_desc]‘, ” .
“last_update = ‘”. gmtime() .”‘, “.
“goods_type = ‘$goods_type’ ” .
“WHERE goods_id = ‘$_REQUEST[goods_id]‘ LIMIT 1″;
第四步:修改后台模板页goods_list.htm
25行:
<th><a href=”javascript:listTable.sort(‘is_hot’); “>{$lang.is_hot}</a>{$sort_is_hot}</th>
<th><a
href=”javascript:listTable.sort(‘is_bonus’); “>红包</a>{$sort_is_bonus}</th>
<th><a href=”javascript:listTable.sort(‘sort_order’); “>{$lang.sort_order}</a>{$sort_sort_order}</th>
47行:
<td align=”center”><img src=”images/{if $goods.is_hot}yes{else}no{/if}.gif” onclick=”listTable.toggle(this, ‘toggle_hot’, {$goods.goods_id})” /></td>
<td
align=”center”><img src=”images/{if $goods.is_bonus}yes{else}no{/if}.gif” onclick=”listTable.toggle(this, ‘toggle_bonus’, {$goods.goods_id})” /></td>
<td align=”center”><span onclick=”listTable.edit(this, ‘edit_sort_order’, {$goods.goods_id})”>{$goods.sort_order}</span></td>
98行:
<option value=”not_hot”>{$lang.not_hot}</option>
<option
value=”bonus”>使用红包</option>
<option
value=”not_bonus”>取消红包使用</option>
<option value=”move_to”>{$lang.move_to}</option>
第五步:修改后台goods.php
在1500行左右加上
/*——————————————————
*/
//–
修改红包使用状态
/*——————————————————
*/
elseif
($_REQUEST['act'] == ‘toggle_bonus’)
{
check_authz_json(‘goods_manage’);
$goods_id
= intval($_POST['id']);
$is_bonus
= intval($_POST['val']);
if
($exc->edit(“is_bonus = ‘$is_bonus’, last_update=” .gmtime(), $goods_id))
{
clear_cache_files();
make_json_result($is_bonus);
}
}
/*—————————————————— */
//– 修改商品排序
/*—————————————————— */
到此后台功能已经修改完成
再修改前台:
首页在tb_cart表中加一个字段is_bonus 类型 tinyint 默认为1 (1是可以使用红包)
找到includes/lib_order.php 中的 function addto_cart
1022行:
$sql = “SELECT g.goods_name, g.goods_sn, g.is_on_sale, g.is_real,g.is_bonus,“.
“g.market_price, g.shop_price AS org_price, g.promote_price, g.promote_start_date, “.
“g.promote_end_date, g.goods_weight, g.integral, g.extension_code, “.
“g.goods_number, g.is_alone_sale, g.is_shipping,”.
“IFNULL(mp.user_price, g.shop_price * ‘$_SESSION[discount]‘) AS shop_price “.
” FROM ” .$GLOBALS['ecs']->table(‘goods’). ” AS g “.
” LEFT JOIN ” . $GLOBALS['ecs']->table(‘member_price’) . ” AS mp “.
“ON mp.goods_id = g.goods_id AND mp.user_rank = ‘$_SESSION[user_rank]‘ “.
” WHERE g.goods_id = ‘$goods_id’” .
” AND g.is_delete = 0″;
1117行:
/* 初始化要插入购物车的基本件数据 */
$parent = array(
‘user_id’ => $_SESSION['user_id'],
‘session_id’ => SESS_ID,
‘goods_id’ => $goods_id,
‘goods_sn’ => addslashes($goods['goods_sn']),
‘product_id’ => $product_info['product_id'],
‘goods_name’ => addslashes($goods['goods_name']),
‘market_price’ => $goods['market_price'],
‘goods_attr’ => addslashes($goods_attr),
‘goods_attr_id’ => $goods_attr_id,
‘is_real’ => $goods['is_real'],
‘extension_code’=> $goods['extension_code'],
‘is_gift’ => 0,
‘is_bonus’
=> $goods['is_bonus'],
‘is_shipping’ => $goods['is_shipping'],
‘rec_type’ => CART_GENERAL_GOODS
);
再修改:function order_fee 大概在545行
/* 商品总价 */
foreach ($goods AS $val)
{
/* 统计实体商品的个数 */
if ($val['is_real'])
{
$total['real_goods_count']++;
}
if($val['is_bonus'])
{
$total['goods_bonus_price']
+= $val['goods_price'] * $val['goods_number'];
}
$total['goods_price'] += $val['goods_price'] * $val['goods_number'];
$total['market_price'] += $val['market_price'] * $val['goods_number'];
}
最后一步就是修改flow.php
大概在686行
/* 如果使用红包,取得用户可以使用的红包及用户选择的红包 */
if ((!isset($_CFG['use_bonus']) || $_CFG['use_bonus'] == ’1′)
&& ($flow_type != CART_GROUP_BUY_GOODS && $flow_type != CART_EXCHANGE_GOODS))
{
// 取得用户可用红包
$user_bonus
= user_bonus($_SESSION['user_id'], $total['goods_bonus_price']);
此功能有个缺陷就是指定商品不能用红包,所有的红包都不能用了
转载请注明: 顺子网络 QQ:57893457
分享到:
相关推荐
这涉及到红包生成、存储、状态更新等多个环节的精细处理,保证在用户多次使用过程中,系统能够准确无误地记录和处理红包状态,既不损害商家的利益,又能提供给用户顺畅的使用体验。 据描述所述,“亲自测试能用,...
根据给定的文件信息,我们将深入探讨如何在ECShop中实现可多次使用的红包功能,这不仅涉及代码修改,还涉及到数据库结构与业务逻辑的理解。ECShop是一款基于PHP和MySQL的开源网上商店系统,广泛用于搭建电子商务平台...
完成以上步骤后,ECShop系统就能支持多个红包插件,并且可以创建和管理可多次使用的红包类型。用户在购物时可以选择这些红包,多次抵扣订单金额,从而提升购买意愿和满意度。商家可以根据自身营销策略,灵活设置不同...
通过以上步骤,我们可以看到整个“ecshop下单送红包插件”的实现过程较为详细且具体,不仅涉及到了前端展示页面的修改,还包括后端逻辑的处理以及数据库的操作,这些都为插件的成功部署打下了坚实的基础。
如果希望对红包的使用有所限制,例如仅限于特定商品或满一定金额才能使用,这些细节也需要在此处进行设置。 在设置完成后,需要进行插件的激活和关联。将这个“注册送红包”活动与用户注册事件绑定,确保当用户完成...
5. **订单关联**:在用户结算时,系统需检查购物车中的商品是否符合红包使用条件,并自动应用红包优惠。 6. **安全与防欺诈**:防止恶意注册获取红包,可能需要设置一些防刷机制,如IP限制、手机号验证等。 在实际...
步骤6:完成以上步骤后,刷新前端页面,你应该能看到商品销量的更新。如果还有问题,检查PHP错误日志或ECSHOP的运行日志,以确定是否有任何错误或警告信息。 在处理ECSHOP的代码时,建议先备份原有文件,以免意外...
通过以上步骤,ECSHOP的后台编辑器就能成功更改为KindEditor,提升管理员的编辑体验。在实际操作中,可能还会遇到其他具体问题,需要结合ECSHOP的官方文档和KindEditor的开发者指南来解决。这个过程不仅锻炼了开发者...
- **限制条件**:可以设置红包只适用于特定商品类别或者达到一定金额的订单。 - **活动推广**:结合社交媒体分享,将红包活动扩散出去,增加新用户注册。 - **数据分析**:跟踪红包的使用情况,评估活动效果,以便...
### PHPCMS、DISCUZ与ECSHOP的整合步骤详解 #### 一、概述 随着互联网技术的发展,各种网站系统之间的整合变得越来越重要。本文将详细介绍如何将PHPCMS、DISCUZ与ECSHOP这三种系统进行整合,以实现更好的用户体验和...
**ECSHOP 2.7.3 新商品接口使用手册** **一、接口简介** ECSHOP 2.7.3 新商品接口主要用于在ECSHOP的商品管理频道添加新的商品。以下是接口的关键要点: 1. **应用领域**:此接口专为ECSHOP的商品添加设计。 2. *...
接着,"ecshop商品设置指定会员等级才可以购买权限"这一操作是通过后台的商品管理界面实现的。在创建或编辑商品的过程中,系统会有一个选项让商家选择需要的会员等级。如果用户未登录,尝试购买设置了等级限制的商品...
在这个插件中,开发者需要对EcShop的源代码进行分析,找到与商品价格相关的数据表和函数,然后编写新的代码来实现批量修改功能。 3. **数据库操作**: 商品的价格信息存储在数据库中,批量修改价格时,需要对`ecs_...
UTF-8是目前最广泛使用的字符编码,能涵盖世界上大部分语言的文字,确保无论用户来自哪个国家,都能正常显示和使用红包功能。 在部署和维护这个插件时,开发者需要注意以下几点: 1. **兼容性**:确保插件与ECShop...
标题中的“ecshop商品浏览权限控制插件”指的是针对ECSHOP这个开源电商系统的功能增强插件。ECSHOP是一款基于PHP语言开发的网店系统,它提供了丰富的功能来帮助商家建立和管理在线商店。这个插件的重点在于商品的...
总的来说,ECSHOP的批量修改商品价格插件是电商运营不可或缺的工具,它简化了价格管理流程,提升了运营效率,使得商家能够更加专注于营销策略和客户服务,推动业务发展。通过合理利用此插件,商家可以在瞬息万变的...
### ecshop使用与安装教程详解 #### 一、ecshop简介 Ecshop是一款基于PHP语言及MySQL数据库构建的开源电子商务系统。它具有丰富的功能、良好的性能以及强大的扩展性,广泛应用于各类在线商城的搭建。本篇文章将围绕...