PrestaShop - 如何将变量添加到电子邮件模板
PrestaShop - How to add a variable to an e-mail template
我最近购买了 PrestaShop 1.7.5 的评论模块。
我想将客户的 phone 号码添加到模块发送的电子邮件中。但技术支持告诉我定制不在模块支持范围内,必须由我自己完成。
所以,我试着自己做。
我在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;
因为我想添加客户 phone 所以修改成这样:
$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 文件中被调用,并使用 LGMailer
class 中的 getOrders()
来检索订单e-mails 将被发送。
如果您仔细查看此方法,您会发现它没有 select 移动 phone 列,您需要添加它。
编辑LGMailer.php
中的getOrders()
方法:
首先,添加缺失的列
$query->select('a.`phone_mobile`');
然后,根据收货地址添加JOIN语句
$query->leftJoin('address', 'a', 'o.`id_address_delivery` = a.`id_address`');
终于
别忘了在opinion-request.html
里面加上{phone_mobile}
(你忘了附在你的问题上)。
希望对您有所帮助!
我最近购买了 PrestaShop 1.7.5 的评论模块。
我想将客户的 phone 号码添加到模块发送的电子邮件中。但技术支持告诉我定制不在模块支持范围内,必须由我自己完成。
所以,我试着自己做。
我在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;
因为我想添加客户 phone 所以修改成这样:
$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 文件中被调用,并使用 LGMailer
class 中的 getOrders()
来检索订单e-mails 将被发送。
如果您仔细查看此方法,您会发现它没有 select 移动 phone 列,您需要添加它。
编辑LGMailer.php
中的getOrders()
方法:
首先,添加缺失的列
$query->select('a.`phone_mobile`');
然后,根据收货地址添加JOIN语句
$query->leftJoin('address', 'a', 'o.`id_address_delivery` = a.`id_address`');
终于
别忘了在opinion-request.html
里面加上{phone_mobile}
(你忘了附在你的问题上)。
希望对您有所帮助!