修复ECSHOP优惠价格失效的BUG
在使用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, ". "NULLp.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;}
下一篇: Ecshop实现仿Taobao地区运费模板 上一篇: 解决ecshop报错Incorrect database name
赞 (0)