关于修复ECSHOP优惠价格失效的BUG
2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家
在使用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最小购买数量控制插
                                  ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便... 
- ecshop2.7.2生成虚拟订单2.
                                  以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生... 
- ecshop没登陆情况下订单查
                                  ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下... 
- ecshop2.7.1邮件发送插件
                                  ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统... 
- ecshop二次开发商品购买增
                                  图片1香... 
ecshop热门问答
ecshop热门资料
          
               
            ecshop专题管理 
                
            ecshop官方 
                
            ecshop根目录 
                
            ecshop程序员 
                
            ecshopdedecms 
                
            ecshop栏目首页 
                
            ecshop敏感词过滤 
                
            ecshop传图 
                
            ecshopWINNT 
                
            ecshopu4idc 
                
            ecshop行货手机 
                
            ecshop文章调用 
                
            ecshop苍天 
                
            ecshop网络营销 
                
            ecshop注册页面 
                
            ecshop预订 
                
            ecshopinstead 
                
            ecshop年轻人 
                
            ecshop正品承诺 
                
            ecshop汽车用品 
                
            ecshop外联 
                
            thinkphpsession 
                
            ecshop用途 
                
            ecshop更换 
                
            ecshop表前缀 
                
            ecshop消费者 
                
            ecshop来历不明 
                
            ecshop空位 
                
            ecshop核查 
                
            ecshopbasedir 
             
        
      


