【问题标题】:Opencart multi-store share cart through different domainsOpencart 多商店通过不同域共享购物车
【发布时间】:2023-04-07 17:28:01
【问题描述】:

我有一个 opencart 网站,其中有两个商店在不同的域中,domain1.com 和 domain2.com。

我想要的是能够通过他们共享购物车,这样如果我在 domain1.com 中将一些产品添加到购物车并转到 domain2.com,我仍然会将这些产品放在购物车中。

我见过类似的东西,但是对于不同的子域,我没有找到任何不同域的东西。 例如:question for subdomains

我运行的是 1.5.6 版本,会话文件是这样的:

class Session {
  public $data = array();

  public function __construct() {
    if (!session_id()) {
        ini_set('session.use_cookies', 'On');
        ini_set('session.use_trans_sid', 'Off');


        session_set_cookie_params(0, '/');
        session_start();
    }

    $this->data =& $_SESSION;
  }

  function getId() {
    return session_id();
  }
}

如何更改此文件以共享会话和购物车?

欢迎所有帮助!

谢谢!

【问题讨论】:

  • 我没有通过这个选项,我改为子域。不幸的是,我无法解决这个问题。

标签: php session opencart cart multistore


【解决方案1】:

我不确定这是一个真正的解决方案,但我知道购物车详细信息存储在 sql 的“客户”表中。因此,您需要更改或删除每个 sql 查询的 where 部分,该部分会为您提供购物车详细信息。

例如,删除每个查询的 where store_id = x 部分。

【讨论】:

  • 我明白你的回答,但是通过会话变量不是更容易吗?
【解决方案2】:

为什么将 cookie 的生命周期设置为 0?看来您打算破坏会话。你绝对应该尝试使用类似的东西

<?php
session_set_cookie_params(1800, '/', $_SERVER['HTTP_HOST']);

您可能需要对 HTTP_HOST 进行一些额外的验证,但基本上它是一个相当可靠的变量,因为 Apache 或 Nginx 依赖它。应将其限制为您当前的主机名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2011-02-26
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2019-10-02
    相关资源
    最近更新 更多