1

我最近购买了 PrestaShop 1.7.5 的评论模块。

我想将客户的电话号码添加到模块发送的电子邮件中。但是技术支持告诉我自定义不包含在模块支持中,必须自己做。

所以,我试着自己做。

我在 LGMailer.php 中找到了模板变量代码:

    $template_vars = array(
        '{firstname}' => $order['firstname'],
        '{lastname}'  => $order['lastname'],
        '{storename}' => Configuration::get('PS_SHOP_NAME'),
        '{email}'     => $order['email'],
        '{id_order}'  => $order['id_order'],
        '{link}'      => $link,
        '{product_details}' => $products
    );

    return $template_vars;

因为我想添加客户电话所以修改如下:

     $template_vars = array(
        '{firstname}' => $order['firstname'],
        '{lastname}'  => $order['lastname'],
        '{storename}' => Configuration::get('PS_SHOP_NAME'),
        '{email}'     => $order['email'],
        '{phone_mobile}'     => $order['phone_mobile'],        (Added this line)
        '{id_order}'  => $order['id_order'],
        '{link}'      => $link,
        '{product_details}' => $products
    );

    return $template_vars;
}

但这似乎不起作用。

谁能告诉我我做错了什么?附件是php文件。

4

1 回答 1

0

模块中的getTemplateVars()方法在 cron.php 文件中被调用,并使用getOrders()类中的LGMailer方法来检索将发送电子邮件的订单。

如果你仔细看这个方法,你会发现它没有选择手机列,你需要添加它。

编辑getOrders()方法LGMailer.php

首先,添加缺少的列

$query->select('a.`phone_mobile`');

然后,根据收货地址添加 JOIN 语句

$query->leftJoin('address', 'a', 'o.`id_address_delivery` = a.`id_address`');

最后

不要忘记在{phone_mobile}里面添加opinion-request.html (您忘记附加到您的问题中)。

我希望这有帮助!

于 2019-05-29T22:18:34.693 回答