博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
修复ECSHOP优惠价格失效的BUG
阅读量:6932 次
发布时间:2019-06-27

本文共 2827 字,大约阅读时间需要 9 分钟。

hot3.png

在使用ECSHOP的时候,商品管理里设置了优惠价格,但是加入购物车之后还是按原价加入购物车。

打开lib_common.php文件(大约2331行

/** * 取得商品最终使用价格 * * @param   string  $goods_id      商品编号 * @param   string  $goods_num     购买数量 * @param   boolean $is_spec_price 是否加入规格价格 * @param   mix     $spec          规格ID的数组或者逗号分隔的字符串 * @return  商品最终购买价格 */function get_final_price($goods_id, $goods_num = '1', $is_spec_price = false, $spec = array()){    $final_price   = '0'; //商品最终购买价格    $volume_price  = '0'; //商品优惠价格    $promote_price = '0'; //商品促销价格    $user_price    = '0'; //商品会员价格    //取得商品优惠价格列表    $price_list   = get_volume_price_list($goods_id, '1');    if (!empty($price_list))    {        foreach ($price_list as $value)        {            if ($goods_num >= $value['number'])            {                // 获取商品单价                $volume_price = round($value['price'] / $value['number']);            }        }    }    //取得商品促销价格列表    /* 取得商品信息 */    $sql = "SELECT g.promote_price, g.promote_start_date, g.promote_end_date, ".                "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";    $goods = $GLOBALS['db']->getRow($sql);    /* 计算商品的促销价格 */    if ($goods['promote_price'] > 0)    {        $promote_price = bargain_price($goods['promote_price'], $goods['promote_start_date'], $goods['promote_end_date']);    }    else    {        $promote_price = 0;    }    //取得商品会员价格列表    $user_price    = $goods['shop_price'];    //比较商品的促销价格,会员价格,优惠价格    if (empty($volume_price) && empty($promote_price))    {        //如果优惠价格,促销价格都为空则取会员价格        $final_price = $user_price;    }    elseif ( ! empty($volume_price) && empty($promote_price))    {        //如果优惠价格为空时不参加这个比较。        $final_price = min($volume_price, $user_price);    }    elseif (empty($volume_price) && !empty($promote_price))    {        //如果促销价格为空时不参加这个比较。        $final_price = min($promote_price, $user_price);    }    elseif (!empty($volume_price) && !empty($promote_price))    {        //取促销价格,会员价格,优惠价格最小值        $final_price = min($volume_price, $promote_price, $user_price);    }    elseif( ! empty($volume_price))    {        // 如果优惠有参与优惠活动取优惠活动和会员价格最小值        $final_price = min($volume_price, $user_price);    }    else    {        $final_price = $user_price;    }    //如果需要加入规格价格    if ($is_spec_price)    {        if (!empty($spec))        {            $spec_price   = spec_price($spec);            $final_price += $spec_price;        }    }    //返回商品最终购买价格    return $final_price;}

转载于:https://my.oschina.net/longjianghu/blog/184222

你可能感兴趣的文章
linux shell脚本之lnmp的搭建
查看>>
rsyslog+loganalyzer+evtsys搭建集中式监控系统
查看>>
[Unity3d]制作打包并载入AssetBundle
查看>>
Excel直接转图片
查看>>
iOS静态库的编译
查看>>
JAVA基础中关于double进制问题的解析
查看>>
Android 图片透明度处理代码
查看>>
邮件服务器问题--邮件积压、传递延迟解决方法
查看>>
Maven2整合集成IntelliJ IDEA创建Web项目
查看>>
实战postfix邮件发送
查看>>
U盘如何量产成USB-CDROM
查看>>
shell批量增删改查百库百表(mysql)
查看>>
网路游侠:日志审计系统与SOC的区别
查看>>
无处不在的网络与中国IPv9
查看>>
hexo
查看>>
云场景实践研究第85期:墨迹天气
查看>>
一个SAP开发人员的2017总结
查看>>
7216:Minecraft
查看>>
上接稳扎稳打Silverlight(20) - 2.0通信之WebClient, 以字符串的形式上传/下载数据
查看>>
perl连接mysql的例子
查看>>