Я хочу добавить настраиваемое поле на страницах заказа администратора.Добавить пользовательское поле на Opencart admin 'Order Info' страница
- сравнить значение, как если
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.
[EDIT]: Хорошо, поэтому я смог написать 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, так как мне не удобно редактировать файлы ядра. Я решил, что мне нужна эта функция, так как я запускаю другой запрос. Я не смог найти таких vqmods в магазине opencart, поэтому я решил попробовать. –
Привет, я добавил полный файл. все еще нет данных –