【问题标题】:Magento set template variable programmaticallyMagento 以编程方式设置模板变量
【发布时间】:2013-04-25 11:32:21
【问题描述】:

我需要能够发送包含条件句的交易电子邮件。对于包含某些产品的任何订单,我想在订单确认电子邮件中包含一句话。有很多示例说明如何根据内置变量在交易电子邮件中使用条件,但我想将条件基于我自己的变量,我将从我自己的扩展程序中以编程方式创建。

邮件程序类 Mage_Core_Model_Email_Template_Mailer 确实有一个公共 setTemplateParams 方法,但由于该方法只调用基类 setData 方法,即使我可以访问该方法来设置我自己的参数,它也会覆盖显示所需的核心模板参数篮子里的东西。

如何做到这一点?

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    您应该创建一个新的 order 属性来保存条件句。 然后您可以通过{{htmlescape var=$order.getYourAttribute()}}在交易电子邮件模板中轻松访问您的属性

    【讨论】:

    • 谢谢,但我不确定 getYourAttribute() 位。篮子里可能有几个项目,我如何确定篮子中是否包含我感兴趣的任何项目?如果购物篮只包含普通产品,那么我想发送默认订单电子邮件,但如果购物篮包含一个或多个特定类型的项目,那么我想在电子邮件中包含一个句子,无论该类型有多少物品在篮子里。
    【解决方案2】:

    您正在创建的属性与哪个实体产品或客户相关

    对于客户,您可以通过 {{var order.getCustomer().getAttrName()}}

    【讨论】:

    • 感谢您的回答,但很抱歉,我不明白这对我有何帮助。如何在结帐时使用此代码检测特定类型的产品是否在购物篮中?
    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多