我想在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,但仍然无法提取数据.我收到错误试图获取非对象的属性
我尝试首先在订单列表中添加数据.
<!--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>
我能够自己解决这个问题.这就是我所理解的.我可能错了,但简单的代码工作.
原文链接:https://www.f2er.com/php/137225.html我在管理订单部分进行了更改,确定更改的方法非常重要.对于模型部分,请使用适当的方法并添加查询或编辑当前查询.与Controller相同.如果您尝试显示为列表 – order_list(getList())或order_info(getInfo)部分.对于那些擅长它的人来说可能很简单,但对我来说,这是我的第一次,所以花了很多时间.
以下是VQMOD格式的工作代码.
<modification> <id><![CDATA[custom order list]]></id> <version>1</version> <vqmver>2.X</vqmver> <author>customAuthor</author> <file name="admin/language/english/sale/order.PHP"> <operation> <search position="after"><![CDATA[ $_['text_order_id'] = 'Order ID:'; ]]></search> <add><![CDATA[ $_['text_custom_order_number'] = 'custom:'; ]]></add> </operation> <operation> <search position="after"><![CDATA[ $_['column_order_id'] = 'Order ID'; ]]></search> <add><![CDATA[ $_['column_custom_order_number'] = 'custom <i class="fa fa-shopping-cart"></i>'; ]]></add> </operation> </file> <file name="admin/view/template/sale/order_list.tpl"> <operation> <search position="after"><![CDATA[ <a href="<?PHP echo $sort_order; ?>"><?PHP echo $column_order_id; ?></a> ]]></search> <add><![CDATA[ <!-- custom --> <td class="text-left"> <?PHP echo $column_custom_order_number; ?></a> </td> <!-- custom --> ]]></add> </operation> <operation> <search position="after"><![CDATA[ <td class="text-right"><?PHP echo $order['order_id']; ?></td> ]]></search> <add><![CDATA[ <td class="text-left"><?PHP if(!empty($order['cu_orders'])){echo "CU".$order['cu_orders'];} else{echo " ";} ?></td> ]]></add> </operation> </file> <file name="admin/view/template/sale/order_info.tpl"> <operation> <search position="after" offset="1"><![CDATA[ <td>#<?PHP echo $order_id; ?></td> ]]></search> <add><![CDATA[ <!-- Shopgate --> <tr> <td><?PHP echo $text_custom_order_number; ?></td> <td><?PHP if (!empty($custom_order_number)) { ?> <?PHP echo 'CU'.$custom_order_number; ?> <?PHP } else { ?> <?PHP echo " "; ?> <?PHP } ?> </td> </tr> <!-- Shopgate --> ]]></add> </operation> </file> <file name="admin/model/sale/order.PHP"> <!-- getOrder() Modifications --> <operation> <search position="replace"><![CDATA[ (SELECT CONCAT(c.firstname,' ',c.lastname) FROM " . DB_PREFIX . "customer c WHERE c.customer_id = o.customer_id) AS customer ]]></search> <add><![CDATA[ (SELECT CONCAT(c.firstname,c.lastname) FROM " . DB_PREFIX . "customer c WHERE c.customer_id = o.customer_id) AS customer,(SELECT s.custom_order_number FROM " . DB_PREFIX . "custom_orders s WHERE s.custom_order_number = o.order_id) AS custom_order_number ]]></add> </operation> <operation> <search position="after"><![CDATA[ 'order_id' => $order_query->row['order_id'],]]></search> <add><![CDATA[ 'custom_order_number' => $order_query->row['custom_order_number'],]]></add> </operation> <!-- getOrderS() Modifications --> <operation> <search position="replace"><![CDATA[ CONCAT(o.firstname,o.lastname) AS customer,]]></search> <add><![CDATA[ CONCAT(o.firstname,(SELECT s.custom_order_number FROM " . DB_PREFIX . "custom_orders s WHERE s.custom_order_number = o.order_id) AS custom_order_number,]]></add> </operation> </file> <file name="admin/controller/sale/order.PHP"> <!-- getList() Modifications --> <operation> <search position="after"><![CDATA[ 'order_id' => $result['order_id'],]]></search> <add><![CDATA[ 'cu_orders' => $result['custom_order_number'],]]></add> </operation> <!-- getForm() Modifications --> <operation> <search position="after"><![CDATA[ $data['store_id'] = $order_info['store_id']; ]]></search> <add><![CDATA[ $data['custom_order_number'] = $order_info['custom_order_number']; ]]></add> </operation> <!-- getInfo() Modifications --> <operation> <search position="after"><![CDATA[ $data['text_order_id'] = $this->language->get('text_order_id'); ]]></search> <add><![CDATA[ $data['text_custom_order_number'] = $this->language->get('text_custom_order_number'); ]]></add> </operation> <operation> <search position="after"><![CDATA[ $data['store_name'] = $order_info['store_name']; ]]></search> <add><![CDATA[ $data['custom_order_number'] = $order_info['custom_order_number']; ]]></add> </operation> </file> </modification>