赵荣涛's Archivers

From admin on 2012-12-30 01:00:04

Ecshop系统添加免运费赠品后,购物车变为收取运费的bug解决。

    在使用ecshop系统的促销功能时,如满足“在山东”网上商城搞的“满100元赠送电影票1张”活动活动的需求,把电影票设置为免运费。

    但是事实情况却事与愿违,消费者购买订单超过100元并添加免运费的赠品后,订单反而又要收取邮费。

    经过笔者分析后台程序源码之后,找到了根源所在:

flow.php
/* 添加赠品到购物车 */
foreach ($favourable['gift'] as $gift)
{
if (in_array($gift['id'], $_POST['gift']))
{
add_gift_to_cart($act_id, $gift['id'], $gift['price']);
}
}
出问题的地方正是函数“add_gift_to_cart”,找到函数的定义,仍在在flow.php文件,

我把该函数修改后的源码贴出来,大家对照一下就明白了:
function add_gift_to_cart($act_id, $id, $price)
{
$sql = "INSERT INTO " . $GLOBALS['ecs']->table('cart') . " (" .
"user_id, session_id, goods_id, goods_sn, goods_name, market_price, goods_price, ".
"goods_number, is_real, extension_code, parent_id, is_gift, rec_type, is_shipping ) ".
"SELECT '$_SESSION[user_id]', '" . SESS_ID . "', goods_id, goods_sn, goods_name, market_price, ".
"'$price', 1, is_real, extension_code, 0, '$act_id', '" . CART_GENERAL_GOODS . "' , is_shipping " .
"FROM " . $GLOBALS['ecs']->table('goods') .
" WHERE goods_id = '$id'";
$GLOBALS['db']->query($sql);
}
还看不明白的就联系我的QQ吧。本博客右上角有我的联系方式。

 

查看完整版本: Ecshop系统添加免运费赠品后,购物车变为收取运费的bug解决。

From 0 on 2013-01-23 09:54:26

0

Tags: