我在prestashop 1.7.2中遇到了te temeplates的问题。在国际/翻译电子邮件正文中我可以使用{if payment =" bankwire"}任何说{/ if}或我不能在模板电子邮件中使用条件?
答案 0 :(得分:0)
不,您无法在邮件模板中使用条件。您应该复制模板并编辑PHP代码以使用其中一个。
答案 1 :(得分:0)
您可以直接在PS 1.7中的PHP部分修改触发发送电子邮件的电子邮件,并在实际调用发送之前在Email:Send()使用的$ data部分中在字符串中添加您自己的已解析HTML。
通过使用“订单确认”电子邮件通知代码进行检查,我发现每次将$ data数组发送到HTML电子邮件模板。您可能知道,电子邮件模板{value}中的那些值是实际变量内容,来自PHP控制器或类端。
因此,基本上,您可以在PHP类/控制器中执行类似的操作,并将新值添加到$ data数组中(我建议创建覆盖或挂钩):
//Just as an example with a ternary.
//Note how I use a {} wrapping the string content. It seems to be a convention or something for PS HTML templates, to escape properly variables from normal text.
$data['{your_conditional_html}'] = $some_value ? "<div>This is great!</div>" : "<div>No, this is not great...</div>";
然后在您的电子邮件模板中:
{your_conditional_html}
就是这样。做完了现在,您应该在HTML模板中具有动态且经过验证的内容。为了创建发送到电子邮件模板的HTML或文本内容,请在PHP部分中执行您喜欢的任何条件逻辑。
致谢。
答案 2 :(得分:0)
我认为在Prestashop 1.7中也应该可以使用钩子BETWEEN
来添加自定义变量。
我也想测试这种方法。