问题描述
我在 prestashop 1.7.7.5 下,我想在 BO 订单列表中添加一列来显示运营商名称,我已经成功添加了带有 hookActionorderGridDeFinitionModifier 的列,但是在 ArdminordersController 中添加运营商名称字段时遇到问题。
我测试进行覆盖,但没有成功,没有任何改变,如果我直接修改 /controllers/admin 中的 AdminordersController.PHP,我也尝试使用 hookActionAdminordersListingFieldsModifier 没有成功。
覆盖是此询问中的文件:Add carrier column to orders table in Prestashop back-office
我已经尝试清除性能选项卡中的缓存并清除 var/cache 中的 dev 和 prod 文件夹
我的字段修饰符钩子:
public function hookActionAdminordersListingFieldsModifier($params)
{
if (isset($params['select'])) {
$params['select'] .= 'carr.name as `carriername`';
}
if (isset($params['join'])) {
$params['join'] .= 'LEFT JOIN `'._DB_PREFIX_.'order_carrier` oc ON (a.`id_order` = oc.`id_order`)
LEFT JOIN `'._DB_PREFIX_.'carrier` carr ON (oc.`id_carrier` = carr.`id_carrier`)';
}
$params['fields']['carriername'] = [
'title' => $this->trans('Carrier',array(),'Admin.Global'),'type' => 'text','align' => 'text-center','class' => 'fixed-width-xl','filter_key' => 'carrier!name','filter_type' => 'text','order_key' => 'carrier!name',];
}
我添加载体列的钩子:
public function hookActionorderGridDeFinitionModifier(array $params)
{
/** @var GridDeFinitionInterface $deFinition */
$deFinition = $params['deFinition'];
/** @var FilterCollection $filters */
$filters = $deFinition->getFilters();
/** @var ColumnCollection */
$columns = $deFinition->getColumns();
$columns
->addAfter('country_name',(new DataColumn('carrier'))
->setName($this->trans('Carrier','Admin.Global'))
->setoptions([
'field' => 'carriername',])
);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)