是否可以在Opencart中制作持久的购物车

时间:2012-06-29 14:05:36

标签: php opencart cart

我想在Opencart支持的商店中制作持久购物车。换句话说,如果用户将产品添加到购物车中并且用户尚未登录。但下次客户在一周内再次访问网站时,他的产品应该放在购物车中。

只有当用户明确地从购物车或结帐时或一周后删除产品时,才应删除产品。

我认为这可以通过使用cookies来完成?将不胜感激

4 个答案:

答案 0 :(得分:3)

有一种非常简单的方法可以做到这一点。

此修改适用于OC 1.4.X.X和OC 1.5.X.X

以下是它的完成方式:

在主目录中,找到system / library / session.php

您会找到一行:

session_set_cookie_params(0,'/');

对于24小时cookie,请将行更改为:

session_set_cookie_params(60 * 60 * 24,'/');

您将一分钟内的秒数乘以一小时内的分钟数乘以您想要将Cookie设置为的小时数。

这不是一个真正的持久性cookie,而是一个非常长的会话cookie,正如Jay Gilford指出的那样,没有[简单]方法用OpenCart创建持久性cookie,如果我们找到一种方法来做到这一点我们会让大家都知道。并且因为OpenCart将此cookie视为会话cookie,无论会话有多长,只要cookie尚未过期,它就不会自动更新cookie,并且新的过期日期。

扩展会话cookie的无害副作用是,当您在以前没有注销的情况下登录管理员页面时,您将收到“无效令牌”消息。这是因为(扩展的)会话cookie“记住”你的上次管理员登录。只需忽略它并登录。但是还有另一个缺点,即如果产品价格发生变化,并且用户已将该产品添加到购物篮中,用户将以前价格存储在24小时cookie中。

OpenCart这样构建的原因似乎是欧盟的隐私法,除非注册用户没有注销,否则禁止持久性cookie。许多在美国和加拿大使用Opencart的电子商务网站都受到硬连线cookie策略的不必要的负担,导致他们失去返回其网站的客户,只需要重新进行订购。

答案 1 :(得分:1)

在opencart中没有mod会这样做。正如评论部分所述,您最好的选择是使用带有令牌的cookie或将会话到期时间设置为长达7天(尽管这有其缺点)

答案 2 :(得分:0)

这是错误的:

C:\DM\stlport\include

应该

session_set_cookie_params(60*60*24, '/');

无论如何,这会修改核心文件(system / library / session.php),所以真的不是一个完美的解决方案。

答案 3 :(得分:-1)

请参阅解决方案的下一条评论。