ecshop积分系统修改小记(2)
2016-07-07 15:34 来源:www.chinab4c.com 作者:ecshop专家
三、后台确认收货的bug 还有一种情况,是顾客通知我们货物已收到了,由我们在后台进行收货确认设置(点击“已 收货”按钮)这个时候,客户的积分还是没有增加,因此我们还要修改后台管理的程序。 我们找到后台“订单信息”的页面为admin/order.php?act=info&order_id=xxx,对应的模板 是admin下面的templates/order_info.htm,从order_info.htm我们可以查到,“已收货”的按钮 是如下语句: <input name="receive" type="submit" value="{$lang.op_receive}" class="button" /> 因此,在/admin/order.php里搜索receive,找到2627行的收货确认操作的程序段。即 'receive' == $operation下面这一段,然后在这段程序的最后(即"}"之前一行)加上以下语句: //add by iamstar log_account_change($order['user_id'], 0, 0, $order['integral'], 0, sprintf($_LANG['order_gift_integral'], $order['order_sn'])); 也就是说我们点击“已收货”按钮时,也能够自动帮客户增加积分了。 可是在反复测试一个购物流程时,当点击“未发货”按钮以收回之前的收货确认时,却有提 示程序出错(不知你们有没有,反正我有,是在order.php的2611行),经查,是以下这一段出错: $integral = integral_to_give($order); 当我们替客户确认收货却要反悔时,点击“未发货”,理应收回之前所赠送的积分的,因此 要对$integral赋值,再执行下一行的操作: log_account_change($order['user_id'], 0, 0, (-1) * $integral, (-1) * $integral, sprintf($_LANG['return_order_gift_integral'], $order['order_sn'])); 也许是赋值有问题,因此将出错的赋值语句注释掉,改为如下,就不会有错误提示了: $integral=intval($order['integral']); 因为我只需要减掉相应的等级积分,因此减分操作我也改了一下: log_account_change($order['user_id'], 0, 0, (-1) * $integral, 0, sprintf($_LANG['return_order_gift_integral'], $order['order_sn'])); 即将第五个参数(对应pay_points)的加减值置零,就不会有任何操作了。关于 log_account_change()函数的参数结构可以自己去 /includes/lib_common.php里查找,这里就 不多说了。 五、拾遗 1) 发现提交订单的时候后台“会员帐户变动明细”会记录“支付订单 xxxxxxxxxxxx”,而且 这个地方无端端会相应扣掉消费积分帐户。这可不是我想要的,在flow.php大约1540行处 注释掉下面这一段即可: if ($order['user_id'] > 0 && $order['integral'] > 0) { log_account_change($order['user_id'], 0, 0, 0, $order['integral'] * (-1), sprintf($_LANG['pay_order'], $order['order_sn'])); } 这样在提交订单的时候就不会记录一条无谓的日志了。 2) 我们发现系统后台“会员帐户变动明细”会在管理员点击“发货”操作时开始赠送积分, 只是这里的赠送额都为0,但我觉得不应该在发货的时候就赠送吧?总得让客户收到货物 之后,因此这里我把它取消掉,免得心烦。在/admin/order.php的约2549行处,注释掉 下面这一段: /* 计算并发放积分 */ $integral = integral_to_give($order); log_account_change($order['user_id'], 0, 0, $integral, $integral, sprintf($_LANG['order_gift_integral'], $order['order_sn'])); 3) 退货的操作也要减积分,但我的应用没有消费积分可减,因此order.php的大约2762行处 的log_account_change操作我把减消费积分的操作置零: log_account_change($order['user_id'], 0, 0, (-1) * $integral, 0, sprintf($_LANG['return_order_gift_integral'], $order['order_sn'])); 上面的一行$integral = integral_to_give($order); 还是会引发错误,因此象在前面 一样改成: $integral=intval($order['integral']); 3100行的return_user_surplus_integral_bonus函数会在退货时给顾客补回相应的消费 积分,我不需要因此将这一整段注释掉: if ($order['user_id'] > 0 && $order['integral'] > 0) { log_account_change($order['user_id'], 0, 0, 0, $order['integral'], sprintf($GLOBALS['_LANG'] ['return_order_integral'], $order['order_sn'])); } 到这里积分的问题就基本修改完毕了,相信看完这篇东东的人都能够根据自己的需要做出 修改。我把相应的修改过的文件共享给大家参考(http://www.paiban.com/sample.rar), 但不建议大家直接覆盖,因为我这些文件可能还做了其它的修改,而且我也不知道您的程序文件 有没有过别的其它修改。大家在sample搜索iamstar找到修改过的地方,对照自己的程序修改即可。 以前碰到什么问题总是google,但这个问题总是找不到解决的方法(包括官网),所以自己尝 试修改了一下,文章胡乱写,也比较烦琐,先致歉。如果文章有写错的地方,也望来信指正。希望 这篇东西能够对受到ecshop积分困扰的人有一些帮助,也算自己的一点点贡献吧。 |
回答:
大哥,很感谢!现在ecshop不知道是否还在开发着,唉 |
很好用,今天刚好在做积分这个,我要实现的的是使用红包的时候不送积分,还没看你的代码,估计应该会对我用帮助,顶一个先 |
很有帮助~~收藏下了~~~~ |
最近更新
常用插件
- ecshop后台订单商品列表查
ecshop后台订单商品列表查询插件,可以通过名称。就把产品显示检索出...
- ecshop商品列表中品牌批量
ecshop商品列表中品牌批量转移插件.这个插件听起来非常希奇。但是我们...
- ecshop导出待发货订单exce
ecshop导出待发货订单excel格式,这个东西是十分重要的,我们在倒出ec...
- ecshop评论功能改进插件
ecshop评论功能改进插件,这个插件是改进了现有的ecshop评论功能的一些...
- ecshop2.7.2迷你购物车插件
ecshop2.7.2迷你购物车插件,这个插件主要是针对修改ecshop购买功能,为了...
ecshop热门问答
ecshop热门资料
ecshop复选框
ecshopECSHOP2。62
ecshoplogout
ecshop高手
ecshop真实
ecshopGTALK
ecshophandler
ecshop欧莱诺
ecshop注册VIP
ecshop直通车
ecshop衣衣树
ecshop温馨提示
ecshopRewriteRule
ecshop创始人
ecshopecmall购物获积分功能
ecshopdwt
ecshop亡羊补牢
ecshop评论调用
ecshop紧急求助
ecshop使用心得
ecshoppassword
ecshopTM域名
ecshop插入图片
ecshop文章问题
ecshop不自动切换
ecshop登陆方法
ecshop团队
ecshop后台登陆不了
ecshop置顶
ecshop摄制