ecshop二次开发之购物车常见问题
2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家
| 由于客户的不同要求,在ecshop二次开发中需要对购物车的功能进行修改,为了方便大家,我在这里把ecshop二次开发中购物车修改的常见问题总结出来,希望能帮助大家解决心中的疑问。 1.ecshop二次开发中保存注册用户购物车数据解决方法: ecshop购物车是数据库中cart表来支持的,在ecshop表中rec_id是编号,user_id是注册用户的id,session_id表示session会话id,如果关闭浏览器,那么session_id将会自动注销。 所以我们可以更改登陆后购物车获取条件 "Session 单独方式"为 Session +用户名,该修改位于Lib_order下function get_cart_goods();信息转自( 当然未登陆方式是Session , 用户登陆后UPdate Cart会自动更新一次,将同一个UserID下购物车内数据不是当前的Session的Update到当前的Session , 并将当前的Session 下的UserID中0的部分UpdateID到当前UserID ,该修改位于 Flow.php 下面 function flow_update_cart($arr) 更改退出时,自动Clear Cart将Distroy 当前Session 的内容,更改为Distroy 当前Session 下 User ID为0的部分,该修改位于:Includes/cls_session.php , function destroy_session() 部分。 以上代码实现的是:游客关闭浏览器后,注册用户购物车永久保存,未注册的用户购物车清空,这样也会减轻对服务器的压力,当然这还是要看用户的数量,数量多数据服务器压力大,程序会自动清理超过一定时间段未登陆的User Cart (或者是额外增加一个数据,来标示加入购物车的时间,根据此时间判断是否自动清理)。 2.接下来我们来看看ecshop二次开发之如何保留所有登陆者购物车中的产品。 我们首先要修改destroy_session()函数,此函数在includes/cls_session.php中。 $this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id' and user_id =''"); 然后修改在lib_mian.php文件中的update_user_info()函数: $sql = "update ".$GLOBALS['ecs']->table('cart')." set user_id =".$_SESSION['user_id']." where session_id = '".SESS_ID."'"; $GLOBALS['db'] -> query($sql); $sql1 = "update ".$GLOBALS['ecs']->table('cart')." set session_id ='".SESS_ID."' where user_id = '".$_SESSION['user_id']."'"; $GLOBALS['db'] -> query($sql1); $re = $GLOBALS['db'] -> getAll("select *,sum(goods_number) as goods_number from ".$GLOBALS['ecs']->table('cart')." where user_id = '{$_SESSION['user_id']}' and session_id = '".SESS_ID."' group by goods_id"); zhyl66.com bctall.com firstyul.com if($re){ foreach ($re as $k => $v){ $sql = "update ".$GLOBALS['ecs']->table('cart'). " set goods_number = ".$v['goods_number']." where rec_id = ".$v['rec_id']; $GLOBALS['db'] -> query($sql); $sql = "delete from ".$GLOBALS['ecs']->table('cart')." where rec_id <> {$v['rec_id']} and user_id = '{$_SESSION['user_id']}' and session_id = '".SESS_ID."' and goods_id = ".$v['goods_id']; $GLOBALS['db'] -> query($sql); } } | 
 
        
					
						
                          
					
				 
      
      最近更新
常用插件
- ecshop二次商品订购人信息
                                  ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的... 
- ecshop商品分类名称增加样
                                  ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样... 
- ecshop2.7.1打印发货单插件
                                  ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs... 
- ecshop分类批量扩展插件
                                  ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们... 
- ecshop二次开发详细页面生
                                  插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人... 
ecshop热门问答
ecshop热门资料
          
               
            ecshop推荐品 
                
            ecshopiteration 
                
            ecshop修改 
                
            ecshop付款漏洞 
                
            ecshop提问 
                
            ecshop360 
                
            ecshopm18模板 
                
            ecshopECshop优化 
                
            ecshop上传照片 
                
            ecshop推广 
                
            ecshop火柴网 
                
            ecshop上图 
                
            ecshop计数器 
                
            ecshop老杨ECSSHOP二次开发 
                
            ecshop移动手机 
                
            ecshop当当购物 
                
            ecshop像素 
                
            ecshopmysqld 
                
            ecshop填写信息 
                
            高效采集 
                
            ecshop收钱 
                
            ecshop首页flash 
                
            手机优惠活动 
                
            ecshop古色古香 
                
            ecshopInternal 
                
            ecshop祖国 
                
            ecshop严重性 
                
            ecshop新浪微博 
                
            ecshop原函数 
                
            ecshop先进 
             
        
      


