当客户在opencart扩展程序中的结帐/成功页面时,如何检索订单ID?

时间:2017-06-20 21:55:34

标签: php opencart opencart2.3

我正在为opencart 2.3开发扩展程序。我想在客户结账/成功页面时检索订单ID。这是扩展程序中的代码吗?

if(isset($this->request->get['route']) && $this->request->get['route'] == "checkout/success")
{
  if (isset($this->session->data['order_id']) && (!empty($this->session->data['order_id']))) 
     { $order_id = $this->session->data['order_id']; ... }
}

我知道这不起作用,因为我在unset($this->session->data['order_id']);中看到了这段代码\catalog\controller\checkoutsuccess.php

任何人都可以在不触及opencart主文件的情况下帮助我吗?

1 个答案:

答案 0 :(得分:0)

我有一个免费的vqMod扩展程序可以做到这一点。它位于https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=18125

注意:要使用vqMod扩展,必须先安装vqMod for OpenCart。此处提供的详细信息和说明:https://github.com/vqmod/vqmod/wiki/Installing-vQmod-on-OpenCart

您必须在清除之前保存此值(如您所述),然后您可以稍后显示它。那是我的mod所做的。

逻辑:

<file name="catalog/language/en-gb/checkout/success.php">
        <operation info="Add language string">

                <search position="after"><![CDATA[
                // Text
                ]]></search>

                <add><![CDATA[
                $_['text_order']   = 'Your order ID is %s.';
                ]]></add>

        </operation>
</file>
<file name="catalog/controller/checkout/success.php">
        <operation info="Save Order ID">

                <search position="after"><![CDATA[
                 if (isset($this->session->data['order_id'])) {
                ]]></search>

                <add><![CDATA[
                $this->session->data['last_order_id'] = $this->session->data['order_id'];
                ]]></add>

        </operation>
</file>
<file name="catalog/controller/checkout/success.php">
        <operation info="Output Order ID">

                <search position="before"><![CDATA[
                $data['button_continue']
                ]]></search>

                <add><![CDATA[
                $data['text_message'] .= sprintf($this->language->get('text_order'),  $this->session->data['last_order_id']);
                ]]></add>

        </operation>
</file>