我想在opencart管理訂單頁面上添加自定義字段。在Opencart管理員'訂購信息'頁面上添加自定義字段
- 比較一樣,如果
oc_order.order_id
oc_custom_table.order_id
=然後管理員順序列表上顯示oc_custom_table.comment
值。 - 在管理訂單信息頁面顯示相同的東西。
我在admin_model_order.php頁面添加了一個自定義函數,其中包含所有所有查詢。
public function getCustomTable($order_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "custom_table WHERE order_id = '" . (int)$order_id . "'"); return $query->rows; }
控制器頁面非常擁擠,我不知道在哪裏添加變量,以便顯示訂單特定的信息。
在語言中,我只需要定義像$ _text_custom_variable ='test'這樣的語言變量;對?和模板文件,我只是選擇一個地方來顯示值。
我使用的是Opencart 2.0版本。
[編輯]:好的,我可以通過引用其中一個vqmod來編寫VQMOD,但仍然無法提取數據。我得到錯誤Trying to get property of non-object
我試着先在訂單列表中添加數據。
<!--Template File -->
<file name="admin/view/template/sale/order_list.tpl">
<operation>
<search position="before"><![CDATA[
<td class="text-left"><?php echo $order['date_added']; ?></td>
]]></search>
<add><![CDATA[
<td class="text-right"><?php echo 'CO'. $order['custom_orders'];?></td>
]]></add>
</operation>
<operation>
<search position="before"><![CDATA[
<td class="text-left"><?php if ($sort == 'o.date_added') { ?>
]]></search>
<add><![CDATA[
<td class="text-right">custom orders <i class="fa fa-shopping-cart"></i></td>
]]></add>
</operation>
</file>
<!--Model File -->
<file name="admin/model/sale/order.php">
<operation>
<search position="before"><![CDATA[
public function getTotalEmailsByProductsOrdered($products) {
]]></search>
<add><![CDATA[
public function getCustomOrderNumber($order_id) {
$custom_orders ='';
$query = $this->db->query("SELECT o.order_id, s.external_order_number, s.custom_order_number
FROM oc_order o
LEFT JOIN " . DB_PREFIX . "custom_orders s ON (s.external_order_number = o.order_id)
WHERE o.order_id = '" . (int)$order_id . "'");
foreach ($query->rows as $row) {
$custom_orders += $this->custom_orders->$row['custom_orders'];
}
return $custom_orders;
}
]]></add>
</operation>
</file>
<!--Controller File -->
<file name="admin/controller/sale/order.php">
<operation>
<search position="before"><![CDATA[
'delete' => $this->url->link('sale/order/delete', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL')
]]></search>
<add><![CDATA[
'custom_orders' => $this->model_sale_order->getCustomOrderNumber($result['order_id']),
]]></add>
</operation>
</file>
查看'/ admin/model/sale/order.php',因爲可能你不需要'public function getCustomTable($ order_id)'。如果您不熟悉Opencart模塊開發,則應聯繫開發人員並要求** vQmod **(不要更改Opencart的核心文件)。 – kanenas
我實際上會創建vqmod,因爲我在編輯核心文件時不舒服。我想我需要這個功能,因爲我正在運行一個不同的查詢。我無法在opencart商店中找到任何這樣的vqmod,所以我想我試試看。 –
嗨,我添加完整的文件。仍然沒有數據 –