我可以在prestashop电子邮件模板中使用条件

时间:2018-02-06 08:35:14

标签: email templates conditional prestashop

我在prestashop 1.7.2中遇到了te temeplates的问题。在国际/翻译电子邮件正文中我可以使用{if payment =" bankwire"}任何说{/ if}或我不能在模板电子邮件中使用条件?

3 个答案:

答案 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来添加自定义变量。

我也想测试这种方法。