未定义的变量 OpenCart
Undefined variable OpenCart
我正在尝试将订单信息发送到我的 OpenCart v2.0.3.1 商店中的成功页面,以将数据发送到 Google Analytics。
但我在成功页面上收到此错误消息:
Undefined variable: order_tracker in /Applications/XAMPP/xamppfiles/htdocs/opencart/catalog/view/theme/default/template/common/success.tpl on line 21
但我在
上定义 order_tracker
atalog/controller/checkout/success.php
$order_tracker = array(
'order_id' => $order_id,
'store_name' => $order_info['store_name'],
'total' => $order_info['total'],
'tax' => $order_tax,
'shipping' => $order_shipping,
'city' => $order_info['payment_city'],
'state' => $order_info['payment_zone'],
'country' => $order_info['payment_country'],
'currency' => $order_info['currency_code'],
'products' => $order_products
);
$this->data['order_tracker'] = $order_tracker;
编辑:
我将最后一行更改为:
$data['order_tracker'] = $order_tracker;
它奏效了。
但是,现在我又遇到了另一个错误:
Undefined variable: order_id in <b>/Applications/XAMPP/xamppfiles/htdocs/opencart/catalog/controller/checkout/success.php</b> on line <b>85</b>
这是第 85 行:
$order_info = $this->model_checkout_order->getOrder($order_id);
这就是我的定义 order_id
if (isset($this->session->data['order_id'])) {
$order_id = $this->session->data['order_id'];
问题出在你的数组关系上。如果
$data['order_tracker'] = $order_tracker;
然后
$order_id = $data['order_tracker']['order_id'];
会给你 order_id,而不是 data['order_id']
。
编辑:
简而言之,这意味着您必须使用此代码:
if (isset($this->session->data['order_tracker']['order_id'])) {
$order_id = $this->session->data['order_tracker']['order_id'];
我正在尝试将订单信息发送到我的 OpenCart v2.0.3.1 商店中的成功页面,以将数据发送到 Google Analytics。 但我在成功页面上收到此错误消息:
Undefined variable: order_tracker in /Applications/XAMPP/xamppfiles/htdocs/opencart/catalog/view/theme/default/template/common/success.tpl on line 21
但我在
上定义 order_trackeratalog/controller/checkout/success.php
$order_tracker = array(
'order_id' => $order_id,
'store_name' => $order_info['store_name'],
'total' => $order_info['total'],
'tax' => $order_tax,
'shipping' => $order_shipping,
'city' => $order_info['payment_city'],
'state' => $order_info['payment_zone'],
'country' => $order_info['payment_country'],
'currency' => $order_info['currency_code'],
'products' => $order_products
);
$this->data['order_tracker'] = $order_tracker;
编辑: 我将最后一行更改为:
$data['order_tracker'] = $order_tracker;
它奏效了。
但是,现在我又遇到了另一个错误:
Undefined variable: order_id in <b>/Applications/XAMPP/xamppfiles/htdocs/opencart/catalog/controller/checkout/success.php</b> on line <b>85</b>
这是第 85 行:
$order_info = $this->model_checkout_order->getOrder($order_id);
这就是我的定义 order_id
if (isset($this->session->data['order_id'])) {
$order_id = $this->session->data['order_id'];
问题出在你的数组关系上。如果
$data['order_tracker'] = $order_tracker;
然后
$order_id = $data['order_tracker']['order_id'];
会给你 order_id,而不是 data['order_id']
。
编辑:
简而言之,这意味着您必须使用此代码:
if (isset($this->session->data['order_tracker']['order_id'])) {
$order_id = $this->session->data['order_tracker']['order_id'];