我在 prestashop 订单列表后台有一个显示预计交货日期的代码。它在 PS 1.6.X 中工作,但在 Prestashop 8 AdminOrdersControllers.php 中已更改,现在我不知道如何添加我的代码,我恢复代码:
controllers/admin/AdminOrderController.php(旧 PS 1.6.x)
在:
public function __construct()
{
$this->bootstrap = true;
$this->table = 'order';
$this->className = 'Order';
$this->lang = false;
$this->addRowAction('view');
$this->explicitSelect = true;
$this->allow_export = true;
$this->deleted = false;
parent::__construct();
$this->_select = '
我接着补充:
(SELECT (DATE_FORMAT(DATE_ADD(op.`date_add`,INTERVAL 7 + IF((WEEKDAY(DATE_ADD(op.`date_add`, INTERVAL 7 DAY)) IN (5)), 2, 0) + IF((WEEKDAY(DATE_ADD(op.`date_add`, INTERVAL 7 DAY)) IN (6)), 1, 0) DAY), "%W, %e of %M")) FROM `'._DB_PREFIX_.'order_payment` op WHERE op.`order_reference` = a.`reference` limit 1) as DayOfDelivery,
然后:
$this->fields_list = array(
'id_order' => array(
'title' => $this->trans('ID', array(), 'Admin.Global'),
'align' => 'text-center'
),
我补充说:
'DayOfDelivery' => array(
'title' => $this->l('Day Of Delivery'),
'align' => 'center',
'orderby' => false,
'search' => false,
'class' => 'fixed-width-xs',
'callback' => 'getIsDayOfDelivery'
),
然后我添加了一个功能:
public function getIsDayOfDelivery ($a, $order)
{
if ($order['note']) {
return '<span title="" data-toggle="tooltip" class="label-tooltip" data-original-title="'.$order['note'].'" data-html="true" data-placement="top"><i class="icon-truck"></i></span>';
}
else {
return '<span title="" data-toggle="tooltip" class="label-tooltip" data-original-title="'.$order['DayOfDelivery'].'" data-html="true" data-placement="top"><i class="icon-truck"></i></span>';
}
}
您知道如何将此代码添加到 src/Core/Grid/Definition/Factory/OrderGridDefinitionFactory.php 或 src/PrestaShopBundle/Controller/Admin/Sell/Order/OrderController.php 中或应添加到哪个文件中?
为了正确地做事,请考虑构建一个非常基本的模块,该模块依赖于在 Symfony 迁移后后台订单页面中 Prestashop 1.7.7 中添加的挂钩之一(在此检查“订单视图页面布局修改”)帮助页面),以便您可以在那里移动并显示现有的代码。