欢迎光临景诺科技软件开发淘宝店

进店请收藏,谢谢

ECshop不清空购物车的方法

ecshop 清空购物车机制:

1、当用户的IP变化后,购物车自动清空;
2、当浏览器关闭后,购物车自动清空;
3、当用户退出登陆后,购物车自动清空;
4、管理员在后台登陆后,购物车自动清空。

我用的方法:

1.includes/cls_session.php找到destroy_session()函数,把其中

        if (!empty($GLOBALS['ecs']))
         {
             $this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id' ");
         }

替换为

 
/* ECSHOP 自定义执行部分(不清空会员的购物车) */
 
        if (!empty($GLOBALS['ecs']))
         {
             $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()

27行左右,在改函数内部末尾添加如下代码

 
 /* 更新用户购物车session_id 开发中心 退出不清空购物车*/

$sql = "UPDATE " . $GLOBALS['ecs']->table('cart') . " SET".
            " session_id = '" .SESS_ID . "'".
           " WHERE user_id = '" .$_SESSION['user_id'] . "'";
    $GLOBALS['db']->query($sql);

3.去掉登陆后台删除购物车:

找admin/privilege.php

找到 724行左右:

在 clear_cart 方法内加入:

 
/** 清除游客购物车信息*/
$sql ="delete from " . $GLOBALS['ecs']->table('cart') ." where user_id = 0";
	$GLOBALS['db']->query($sql);
	return ;

我的方法目前测试可用,看后面有没需要补充
———————

网上的参考方法:

1.首先限制入口:加入购物车必须要已经登陆,找到flow.php在

if ($_REQUEST['step'] == ‘add_to_cart’)
{
include_once(‘includes/cls_json.php’);
后面加入:

	if ( empty($_SESSION['user_name']))
 {
        $json = new JSON;
          $result['error']  = "888";
         $result['message'] = "请先登录";
         die($json->encode($result));
 }
	

2.includes/cls_session.php找到destroy_session()函数,把其中

        if (!empty($GLOBALS['ecs']))
         {
             $this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id' ");
         }

替换为

 
/* ECSHOP 自定义执行部分(不清空会员的购物车) */
 
        if (!empty($GLOBALS['ecs']))
         {
             $this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id' AND user_id = 0 ");
         }

3、换IP时不影响购物车

includes/cls_session.php把

 
 $this->_ip = real_ip();

替换为

 
 if(isset($_COOKIE['real_ipd']) && !empty($_COOKIE['real_ipd']))
         {
              $this->_ip = $_COOKIE['real_ipd'];
         }
         else
         {
              $this->_ip = real_ip();
              setcookie("real_ipd", $this->_ip, time()+864000, $this->session_cookie_path);
         }

4.删除后台清除购物车的方法 admin/privilege.php 文件内

更多

本文固定链接: http://shanmao.me/web-system/ecshop-web-system/ecshop-bu-qing-kong-gou-wu-che-de-fang-fa | 山猫的博客

该日志由 admin 于2015年04月30日发表在 ECSHOP二次开发 分类下,
原创文章转载请注明: ECshop不清空购物车的方法 | 山猫的博客