在管理订单列表中添加 Carrier 列 prestashop 1.7.7.5

问题描述

我在 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 (将#修改为@)