PrestaShop - 如何将变量添加到电子邮件模板

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (31)

我最近为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文件。

提问于
用户回答回答于

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 (您忘记附加到您的问题)。

我希望这有帮助!

扫码关注云+社区

领取腾讯云代金券