您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop购物车商品自动清空问题解决方法改善会员体验
车杜炯2024-01-01Ecshop商城教程已有人查阅
导读ECSHOP程序的购物车会自动清空,而且有多个清空设置,防不胜防:1、当用户的IP变化后,购物车自动清空;2、当浏览器关闭后,购物车自动清空;
ECSHOP程序的购物车会自动清空,而且有多个清空设置,防不胜防:
1、当用户的IP变化后,购物车自动清空;
2、当浏览器关闭后,购物车自动清空;
3、当用户退出登陆后,购物车自动清空;
4、管理员在后台登陆后,购物车自动清空。
几乎可以说,不管是不是会员、不管有没有登陆,购物车的数据是不保留的,甚至管理员登陆后台都会把购物车清空一次,似乎ECSHOP对购物车有刻骨之仇,分分
钟要把购物车的数据清理掉。这给会员的体验就很差。很多会员反映:花了一下午时间挑好商品,准备第二天再下单,结果第二天一看,购物车里什么也没有了。
想保留会员的购物车,需要修改程序。网络上给出了很多种修改方案,但都不全面,购物车依然会被清空。只有把程序中所有清空代码都修改掉,才起作用。
1、限制购物车仅登陆后使用,以免未登陆使用购物车后数据被清空。
flow.php 找到" B% F1 r) s% u5 d. H' P5 q
if ($_REQUEST['step'] == 'add_to_cart')
{
include_once('includes/cls_json.php');
在下面添加
关闭浏览器时,用户信息会更新,购物车被清空。退出登陆更是清空。我们修改为只清空游客的购物车,会员的不清空。(网络上这一步有几个版本的代码,都搞得
很复杂,说还要把lib.main.php里面加入多少代码来“更新购物车”,那是不需要的。因为购物车信息本来就已写入数据库了,此地只是阻止清空就行
了。而且有些更新购物车的代码是错误的,真的添加上去后,购物车会出错,比如同一个商品有多个颜 时,只能买一种颜 。想买两个颜 就搞不成。所以不要画
蛇添足去搞什么“更新购物车”)。
includes/cls_session.php找到destroy_session()函数,把其中
将用户的IP存入Cookie,或者在生成SESSION时,不取IP。这步修改对动态IP用户无法使用购物车也同时解决。这里IP存入Cookie
的有效期是10天,也就是10后购物车依然被清空了。如果想保留更久或更短,可以把864000改为其它数字。一般来说购物车数据留10天已足够了,10
天了还未下单,基本上就不会下单了。而10后购物车清空,不会造成数据库压力。
includes/cls_session.php把
$this->_ip = real_ip();
替换为
特别不能理解管理员登陆后台,居然把全站的购物车都清空。难道管理员成了清洁工?若干会员在前台选购,选着选着你管理员要进后台看一下,你一进去,前台会员的购物车全空了、全下不成单了--这都什么事儿啊!也不知道是哪个脑残设计的这么一个步骤。
找admin/privilege.php,以下代码注解掉
// 清除购物车中过期的数据
clear_cart();
再找
( a& p1 r# f6 A, D/ e; h* Y
以前购物车天天自动清空,数据表老是空的或者才几条数据。购物车不再自动清空后,数据表的数据就会慢慢累积。 r9 w0 @, `; q
1、当用户的IP变化后,购物车自动清空;
2、当浏览器关闭后,购物车自动清空;
3、当用户退出登陆后,购物车自动清空;
4、管理员在后台登陆后,购物车自动清空。
几乎可以说,不管是不是会员、不管有没有登陆,购物车的数据是不保留的,甚至管理员登陆后台都会把购物车清空一次,似乎ECSHOP对购物车有刻骨之仇,分分
钟要把购物车的数据清理掉。这给会员的体验就很差。很多会员反映:花了一下午时间挑好商品,准备第二天再下单,结果第二天一看,购物车里什么也没有了。
想保留会员的购物车,需要修改程序。网络上给出了很多种修改方案,但都不全面,购物车依然会被清空。只有把程序中所有清空代码都修改掉,才起作用。
1、限制购物车仅登陆后使用,以免未登陆使用购物车后数据被清空。
flow.php 找到" B% F1 r) s% u5 d. H' P5 q
if ($_REQUEST['step'] == 'add_to_cart')
{
include_once('includes/cls_json.php');
在下面添加
$ Q1 d8 }1 w0 |: G& R% L
if ( empty($_SESSION['user_name']))
{
$json = new JSON;
$result['error'] = "999";
$result['message'] = "请先登录";
die($json->encode($result));
}
2、不自动清空会员的购物车关闭浏览器时,用户信息会更新,购物车被清空。退出登陆更是清空。我们修改为只清空游客的购物车,会员的不清空。(网络上这一步有几个版本的代码,都搞得
很复杂,说还要把lib.main.php里面加入多少代码来“更新购物车”,那是不需要的。因为购物车信息本来就已写入数据库了,此地只是阻止清空就行
了。而且有些更新购物车的代码是错误的,真的添加上去后,购物车会出错,比如同一个商品有多个颜 时,只能买一种颜 。想买两个颜 就搞不成。所以不要画
蛇添足去搞什么“更新购物车”)。
includes/cls_session.php找到destroy_session()函数,把其中
/* ECSHOP 自定义执行部分*/
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 = '' ");
}
3、换IP时不影响购物车将用户的IP存入Cookie,或者在生成SESSION时,不取IP。这步修改对动态IP用户无法使用购物车也同时解决。这里IP存入Cookie
的有效期是10天,也就是10后购物车依然被清空了。如果想保留更久或更短,可以把864000改为其它数字。一般来说购物车数据留10天已足够了,10
天了还未下单,基本上就不会下单了。而10后购物车清空,不会造成数据库压力。
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,以下代码注解掉
// 清除购物车中过期的数据
clear_cart();
再找
// 删除cart中无效的数据
$sql = "DELETE FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id NOT " . db_create_in($valid_sess);
$GLOBALS['db']->query($sql);
也注解掉。( a& p1 r# f6 A, D/ e; h* Y
以前购物车天天自动清空,数据表老是空的或者才几条数据。购物车不再自动清空后,数据表的数据就会慢慢累积。 r9 w0 @, `; q
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop商城密码忘记了怎么办,ecshop2.73修改密码方法
ecshop后台密码忘记了,或者被人恶意篡改了,无法进入后台,代码号为您提供解决办法:此方法是通过phpMyAdmin来修改密码 ,首页登录phpMyAdmin找到相对应的数据库
ecshop结构文件相应功能介绍详细说明
ECShop 2.5.1(其他版本大差不差都一样)的结构及各文件相应功能介绍 ECShop2.5.1_Beta upload 的目录
ecshop常用标签大全
先从index.php主页开始页面关键字 {$keywords }页面标题 {$page_title}产品分类父分类列表 {foreach from=$categories item=cat }父分类超链接 http://localhost/ecsh
ecshop实现用户自动登陆的方法
让Ecshop网店系统用户户自动登陆,打开ecshop includes/init.php文件,可以发现Ecshop系统判断用户的SESSION不存在的时候会去读取存储在COOKIES里面的值。如下代码片段所示:
相关源码
-
(自适应)蓝色环保科技设备带三级栏目网站模板下载该模板为环保科技企业设计,提供专业的产品展示与技术服务平台。采用响应式布局,适配环保设备、清洁技术等应用场景,通过可视化后台可快速搭建符合行业特性的展示网站。查看源码 -
(自适应响应式)高新技术科技能源pbootcms网站HTML5模板本模板基于PbootCMS内核开发,为高新技术、科技研发、能源技术等科技型企业设计。采用HTML5+CSS3前沿技术,具备完善的响应式布局,能够自动适配手机、平板和电脑等多种终端设备。模板设计风格简约大气查看源码 -
帝国cms7.5品牌连锁店招商加盟商机网站模版源码本模板为招商加盟、创业投资、品牌连锁等商业领域设计,采用帝国CMS7.5内核构建,整体风格简洁大气,突出商业信任感与专业度,适合各类招商加盟项目展示、品牌连锁店宣传等商业应用场景。查看源码 -
(自适应响应式)超市仓储仓库货架展架网站pbootcms源码下载本模板为货架展架、仓储货架行业量身打造,采用PbootCMS内核开发,充分考虑了货架产品展示和企业形象展示的需求。模板设计简洁大方,突出产品特点,能够有效展示各类货架产品的规格参数和应用场景,帮助访客快速了解企业核心业务和产品优势。查看源码 -
WordPress主题模板JustNews资讯博客类源码V5.2.2JustNews主题针对博客创作、自媒体运营及资讯发布类网站的需求而设计,提供专业的内容展示与管理方案。该主题集成前端用户中心功能,支持用户在前端界面发布和投稿文章,操作流程简洁高效。查看源码 -
(自适应手机端)锁锁芯锁具网站pbootcms模板 智能防盗锁网站源码下载本模板基于PbootCMS系统开发,为智能锁具、防盗锁芯及相关安防产品企业设计。采用响应式布局技术,确保在手机、平板和电脑等不同设备上都能获得良好的浏览体验,数据实时同步更新。查看源码
| 分享笔记 (共有 篇笔记) |
