当客户位于 opencart 扩展程序的 checkout/success 页面时,如何检索订单 ID?
How to retrieve order id, when the customer is in checkout/success page in a opencart extension?
我正在为 opencart 2.3 开发一个扩展。我想在客户访问 checkout/success 页面时检索订单 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']; ... }
}
我知道这行不通,因为我在 \catalog\controller\checkoutsuccess.php
中看到了这段代码 unset($this->session->data['order_id']);
。
任何人都可以在不触及 opencart
的主文档的情况下帮助我解决这个问题吗?
我有一个免费的 vqMod 扩展程序可以做这件事。在 https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=18125
注意:要使用 vqMod 扩展,您必须先为 OpenCart 安装 vqMod。此处提供详细信息和说明: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>
我正在为 opencart 2.3 开发一个扩展。我想在客户访问 checkout/success 页面时检索订单 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']; ... }
}
我知道这行不通,因为我在 \catalog\controller\checkoutsuccess.php
中看到了这段代码 unset($this->session->data['order_id']);
。
任何人都可以在不触及 opencart
的主文档的情况下帮助我解决这个问题吗?
我有一个免费的 vqMod 扩展程序可以做这件事。在 https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=18125
注意:要使用 vqMod 扩展,您必须先为 OpenCart 安装 vqMod。此处提供详细信息和说明: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>