OpenCart:在ControllerCheckoutSuccess类取消设置之前,在模块中获取$ this-> session-> data [' order_id']

时间:2014-03-17 09:17:18

标签: php session opencart

我正在开发一个OpenCart模块,并且正在努力使用$this->session->data['order_id']来获取order_id。

如果我在ControllerCheckoutSuccess类中注释掉取消设置order_id会话变量的部分,我的模块工作正常。

如何在ControllerCheckoutSuccess取消设置之前确保获得order_id?

Edit1:我需要订单ID来提取该特定订单的客户名称,总金额,小计等详细信息。是否有其他方法可以获得订单ID?

Edit2 :在'store/catalog/controller/module/myModule.php'函数的index()中添加了此代码。使用它来存储临时会话变量中的order_id并在订单成功时使用它 -

if (isset($this->session->data['temp_order_id']) 
     && isset($this->request->get['route']) 
     && $this->request->get['route'] == 'checkout/success')
{
    // perform custom action
    unset($this->session->data['temp_order_id']);
} 
elseif (isset($this->session->data['order_id']))
{
    $this->session->data['temp_order_id'] = $this->session->data['order_id'];
}


请帮忙!

2 个答案:

答案 0 :(得分:3)

catalog/controller/checkout/success.php文件中,添加:

$this->session->data['temp_order_id'] = $this->session->data['order_id'];

后:

if (isset($this->session->data['order_id'])) {

然后在调用checkout success页面控制器之前调用自定义模块或调用自定义模块。

答案 1 :(得分:0)

无法找到任何解决方案,因此通过使用vQmod动态添加代码(如Sankar V所述)对其进行排序。但是,它添加了一个应该已经安装vQmod的依赖项。

希望它可以帮助遇到类似问题的人。