首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PrestaShop -如何将变量添加到电子邮件模板

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

Stack Overflow用户
提问于 2019-05-30 03:09:21
回答 1查看 653关注 0票数 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文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-30 06:18:35

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

如果您仔细观察此方法,您将看到它没有选择mobile phone列,您需要添加它。

LGMailer.php中编辑getOrders()方法

首先,添加缺少的列

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

然后,根据传递地址添加一个语句

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

最终

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

我希望这能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56367047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档