日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

ecshop flow.php goods_number,修复ECSHOP一重要BUG,当商品设置数量优惠时,加入不同属性的商品数量优惠判断错误...

發布時間:2025/3/17 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ecshop flow.php goods_number,修复ECSHOP一重要BUG,当商品设置数量优惠时,加入不同属性的商品数量优惠判断错误... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

修復ECSHOP一重要BUG,當商品設置數量優惠時,加入不同屬性的商品數量優惠判斷錯誤

例,優惠數量設置如下:

1件 ??????????? 100元

5件????????????? 90元

10件??????????? 80元

該商品有A、B屬性規格

我添加A屬性5件到購物車,再添加B屬性此商品5件到購物車

按道理該商品數量達到了10件,價格應該會是80元。

但是ECSHOP在這里有一個錯誤是沒有進行相以應的驗證,只判斷了單件商品的數量,所以價格是90元。而且單獨增減一個時不會對另一個的價格進行處理 。

老楊在這里寫了一個函數來解決此問題,也將此BUG的修改加入了LYECSHOP v1.1.3版中(老版本客戶可以聯系修改)。

修改如下:

找到

includes/lib_common.php

復制內容到剪貼板

/**

*?取得商品最終使用價格

*

*?@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())

{

在這上面加入一函數:

復制內容到剪貼板

functionupdate_cart_volume_price($goods_id){

$volume_price='0';//商品優惠價格?www.lyecs.com?老楊ECSHOP

//取得商品優惠價格列表

$price_list=?get_volume_price_list($goods_id,'1');

if(!emptyempty($price_list))

{

//獲取所不同規格的相同商品數量?www.lyecs.com?老楊ECSHOP

$sql="SELECT?SUM(goods_number)?".

"?FROM?".$GLOBALS['ecs']->table('cart')?."?".

"?WHERE?session_id?=?'".?SESS_ID?."'?AND?goods_id=?'$goods_id'?AND?rec_type?=?'".?CART_GENERAL_GOODS?."'?";

$all_number=$GLOBALS['db']->getOne($sql);

foreach($price_listas$value)

{

if($all_number>=$value['number'])

{

$volume_price=$value['price'];

}

}

//如果有優惠價格,更新所不同規格的相同商品的價格?www.lyecs.com?老楊ECSHOP

if($volume_price){

$sql="UPDATE?".$GLOBALS['ecs']->table('cart')."?SET?goods_price?=?'$volume_price'?".

"?WHERE?session_id?=?'".?SESS_ID?."'?AND?goods_id=?'$goods_id'?AND?rec_type?=?'".?CART_GENERAL_GOODS?."'?";

$GLOBALS['db']->query($sql);

}

}

}

然后在這此文件找到:

復制內容到剪貼板

//如果需要加入規格價格

if($is_spec_price)

{

if(!emptyempty($spec))

{

$spec_price=?spec_price($spec);

$final_price+=$spec_price;

}

}

在此下面添加如下代碼:

復制內容到剪貼板

if(!$volume_price){

//如果沒有優惠價格,更新所不同規格的相同商品的價格?www.lyecs.com?老楊ECSHOP

$sql="UPDATE?".$GLOBALS['ecs']->table('cart')."?SET?goods_price?=?'$final_price'?".

"?WHERE?session_id?=?'".?SESS_ID?."'?AND?goods_id=?'$goods_id'?AND?rec_type?=?'".?CART_GENERAL_GOODS?."'?";

$GLOBALS['db']->query($sql);

}

打開includes/lib_order.php

找到

復制內容到剪貼板

else?//購物車沒有此物品,則插入

{

$goods_price=get_final_price($goods_id,?$num,?true,?$spec);

$parent['goods_price']??=?max($goods_price,?0);

$parent['goods_number']?=?$num;

$parent['parent_id']????=?0;

$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('cart'),?$parent,?'INSERT');

}

}

/*?把贈品刪除?*/

$sql="DELETE?FROM?".?$GLOBALS['ecs']->table('cart')?.?"?WHEREsession_id='"?.?SESS_ID?.?"'AND?is_gift<>0";

$GLOBALS['db']->query($sql);

在下面添加:

復制內容到剪貼板

update_cart_volume_price($goods_id);//www.lyecs.com 老楊ECSHOP

打開flow.php

找到:

復制內容到剪貼板

/*?刪除所有贈品?*/

$sql="DELETE?FROM?".$GLOBALS['ecs']->table('cart')?."?WHERE?session_id?=?'".SESS_ID."'?AND?is_gift?<>?0";

$GLOBALS['db']->query($sql);

在下面添加:

復制內容到剪貼板

update_cart_volume_price($goods['goods_id']);? //www.lyecs.com 老楊ECSHOP

到此問題解決了。另外,轉載請注意保留出處。謝謝。

總結

以上是生活随笔為你收集整理的ecshop flow.php goods_number,修复ECSHOP一重要BUG,当商品设置数量优惠时,加入不同属性的商品数量优惠判断错误...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。