- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在 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; }
The controller page is pretty crowded and i have no idea where to add variables so it displays order specific info.
In the language, I just have to define language variables like $_text_custom_variable = 'test'; right? and template files, I just choose a place to display the value.
I am using Opencart 2.0 version.
[EDIT]: Okay so i was able to write a VQMOD by referencing one of the vqmod for it but still cannot pull up data. I get error Trying to get property of non-object
I tried first adding the data in order list.
<!--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 order 部分进行更改,重要的是要弄清楚更改是在哪种方法中完成的。对于 Model 部分,使用适当的方法并添加查询或编辑当前查询。与 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, ' ', o.lastname) 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>
</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>
关于php - 在 Opencart admin 'Order Info' 页面上添加自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862947/
我想使用 opencart sellya 主题在标题中显示语言下拉列表。在下面的链接上,您会在标题中看到语言下拉列表。 http://serwer1382018.home.pl/sellyakids/
谁能帮我在 opencart 中向制造商添加元数据详细信息?我正在寻找添加类似于产品或类别的元数据关键字、描述和制造商描述。 最佳答案 打开您的 opencart 数据库并将以下额外字段添加到 oc_
如何在 Opencart 上为运费加税? 我在我的网站上获得了以下结帐摘要: 小计:£332.50送货区 1:49.99 英镑增值税 (20%):66.50 英镑总计:448.99 英镑 运费为 49
我是 OpenCart 的新手,我想将我的主题应用于 OpenCart。 我知道我不应该直接编辑默认模板,但是如何复制默认模板文件并更改它以应用主题? 最佳答案 Balan,您可以从复制文件夹目录\v
我想在产品描述页面上显示货币列表。我该怎么做? 我从 header.tpl () 中复制代码并将其粘贴到 product.tpl 中,但出现错误: 注意: undefined variable :C:
我想在产品描述页面上显示货币列表。我该怎么做? 我从 header.tpl () 中复制代码并将其粘贴到 product.tpl 中,但出现错误: 注意: undefined variable :C:
我正在尝试创建一个开发站点,我可以在其中将产品添加到我的购物车和交付选项 - 然后结帐。我希望能够在不使用真实卡或支付网关的情况下执行虚拟订单 我启用了免费结账功能,但它没有出现在 OpenCart
我刚刚第 5 次安装 OpenCart,但我总是卡在同一页面上.. 我在安装时没有遇到任何错误,但是当我尝试登录到管理页面时,我总是卡住。如果我尝试使用正确的用户名/密码,它不会显示任何错误。 这里有
我正在使用 OpenCart 版本 3.0.2。 默认情况下,OpenCart 有 4 个区域,我们可以在其中放置模块到我们的布局中。即 左栏 右栏 热门内容 底部内容 我的问题是,我们是否可以以某种
除产品选项外,我的购物车似乎正常运行。当我单击“添加购物车”按钮时,会添加该项目,但不会添加任何选项。我真的不明白为什么会发生这种情况,因为我已经按照函数的需要,使用 option_id 和 opti
如果有2个vQmod /vqmod/xml/mymod1.xml & /vqmod/xml/mymod2.xml 来更改文件(例如) Catalog/model/tool/image.php,在 Op
我已经复制了一份 OpenCart 安装(版本 2.0.3.1)并放到 Windows localhost 上。 我已经解决了几个问题,但现在遇到了一个我无法解决的错误: fatal error :在
我正在编写 VQMod XML 以在 opencart 中编辑 config.php,我在 XML 下方编写并将其保存在 XML 文件夹中。 VQMOD CORE FOR OPENCART - DO
我想从 opencart 2.0 及以上版本的注册、 guest 中删除送货地址或送货地址选项,但送货方式应该在那里,因为我希望账单地址是没有额外字段的送货地址 我试图通过这两个教程在我的 openc
我是这个论坛和 OpenCart 的新手。 我需要有关在 OpenCart 中创建模块的帮助。在我的例子中,它将从我的 WordPress 安装的每个类别中获取最新的 5 个帖子,并将其显示在我的 O
我在 OpenCart 中遇到问题。 当为产品填充 SEO 关键字时,它在 Firefox 和 Chrome 上运行良好,但在 IE(版本 6.)上它崩溃了。 错误: The page you are
我已将我的产品导出到 Excel 电子表格文件中,然后我将我的产品安装到全新安装的 OpenCart 1.5.6.4 中。然后我上传了 OpenCart 2.0.3.1 并运行了升级脚本。我第一次运行
我一直在尝试使用默认模板并尝试更改它的一些功能。在我的产品页面 (catalog/view/theme/mytheme/template/product/product.tpl) 上,我想根据我的客户
在 opencart 版本 3 中有一条通知: It is very imporant that you move the storage directory outside of the web d
我的 OpenCart 网站使用 SendGrid 作为其电子邮件发送系统。直到最近,这一切都正常工作。使用需要向管理员发送电子邮件的功能时(例如,新订单提醒电子邮件、创建新帐户),我收到此错误:
我是一名优秀的程序员,十分优秀!