大家都知道ECShop會員退出登錄同時會把已經(jīng)加入購物車里的商品清空掉答憔,如何實現(xiàn)會員退出登陸后不清空會員購物車中的商品了鸟廓?下面可以通過ECSHOP網(wǎng)站開發(fā)中心官方技術提供的方法君旦,做一個小小的修改即可實現(xiàn)會員退出登錄后同時保留原購物車里面的商品不清空少办。大家可以測試一下我們官方保留會員購物車效果捂敌,當然惩坑,我們官方這種效果的基礎上做了進一步的開發(fā),會員更換IP朝扼,更換電腦操作系統(tǒng)赃阀,更換電腦均不影響會員保留在購物車中的商品,實現(xiàn)永久保留會員購物車中商品.
1. 打開includes\cls_session.php文件
搜索如下代碼:
$this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id'");
把代碼修改為:
$this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id' AND user_id = 0");
2. 打開includes\lib_main.php文件
搜索如下代碼:function update_user_info()在改函數(shù)內部末尾添加如下代碼:
/* 更新用戶購物車擎颖,退出不清空購物車 */
$sql = "UPDATE " .$GLOBALS['ecs']->table('cart'). " SET".
" user_id = '" . $_SESSION['user_id'] . "'".
" WHERE session_id = '" . SESS_ID . "'";
$GLOBALS['db']->query($sql);
$sql = "UPDATE " . $GLOBALS['ecs']->table('cart') . " SET".
" session_id = '" . SESS_ID . "'".
" WHERE user_id = '" . $_SESSION['user_id'] . "'";
$GLOBALS['db']->query($sql);
/* 刪除購物車中已下架的商品 */
$sql = "SELECT DISTINCT(c.goods_id) FROM " .$GLOBALS['ecs']->table('cart').
" AS c left JOIN " .$GLOBALS['ecs']->table('goods').
" AS g on c.goods_id = g.goods_id WHERE g.is_on_sale = 0 AND c.user_id = '" . $_SESSION['user_id'] . "'";
$data = $GLOBALS['db'] ->getAll($sql);
if($data){
foreach ($data as $k=>$v){
$sql = "DELETE FROM " .$GLOBALS['ecs']->table('cart'). " WHERE goods_id = '" . $v['goods_id'] . "'";
$GLOBALS['db'] -> query($sql);
}
}
至此全部修改完成榛斯,即可實現(xiàn)會員退出登錄不清空購物車。