整个站点的 Opencart 3 会话数据

Opencart 3 Session data across the site

我只是想知道是否可以在 Opencart 网站上设置会话?

我的意思是我在我的 Opencart 网站上创建了一个子目录相册。我想要实现的是在产品页面上,当用户单击相册图标时,它将被带到相册子目录。在相册子目录中,将有一个表格,用户必须填写该表格。用户在提交时从相册目录填写该表单后,用户应重定向到该产品页面,并在相册目录中填写表单数据。此外,产品页面应该选择与 he/she 在点击相册之前选择的选项相同的选项。

我尝试通过在我的相册页面上使用以下代码设置会话数据来做到这一点。

sessionStorage.setItem("album", JSON.stringify(tdata));

然后,使用 window.history.go(-1);

返回产品页面

但是,我仍然无法在我的产品页面上获取专辑会话数据。 $_SESSION$this->session->data

我都试过了

有人知道如何实现吗?

谢谢

OC会话数据保存:

$this->session->data['your_data'] = $some_data;

已编辑:

要在同一域中的非 OC 站点中保存和检索数据,请使用: 此文件应在 运行 之前获取该数据。这意味着数据必须保存到会话中。 在您要从中获取数据的文件中:

session_start();
$_SESSION['my_data'] = $some_data;

稍后要从同一域中所需的会话中检索数据,请使用以下代码:

session_start();
if (isset($_SESSION['my_data']))
    $sessionData = $_SESSION['my_data'];
else 
    $sessionData= '';

清除数据,使用unset()PHP函数,如下:

unset($_SESSION['my_data']);

我创建了自定义 jquery 文件并在 $data['heading_title'] = $product_info['name']; 之前将其注入我的产品页面。

$this->document->addScript('catalog/view/javascript/jquery/album.js');

在我的album.js

$(document).ready(function(e) {
      if (sessionStorage.getItem("album_data") != null) {
        var data = sessionStorage.getItem("album_data");
        console.log(data);
      }
}

我的习惯 album.php 位于 mysite/album/

<script>
    sessionStorage.setItem("album_data", JSON.stringify(tdata));
    window.history.go(-1);
</script>

无需创建会话或任何东西。在 controller/product.php 中无法创建新会话,因为 OC 有自己的处理会话数据的方式。因此,我们将无法访问其中的任何 $_SESSION 数据。 OC只懂$this-session->data.