我正在尝试在电子邮件主题中显示Magento中新订单电子邮件的付款方式。原因是我们的客户可以轻松地从Magento发送的电子邮件中确定该订单是通过支付网关还是Paypal Express发送的。
我不完全确定实现这一目标的最佳方法,我想我已经可以使用它了。
{{var payment_html}}
返回电子邮件模板的付款方式块...
{{var paymentMethod}}
在电子邮件主题中绝对没有返回任何内容,所以现在不确定这是否是折旧变量。
我认为还可以选择创建自定义属性,在静态块中调用它,然后在电子邮件模板中将其显示为自定义变量,但这似乎是一个相当漫长的方法,只是为了纯粹获取文本字符串“通过SagePay”或“通过Paypal Express”。
非常感谢任何帮助。
提前致谢。
答案 0 :(得分:15)
您实际上不需要执行任何自定义,此变量已通过对象链在模板中可用。该链由Magento模板支持,允许使用对象的getter。
在这种情况下,您需要检索订单的付款对象,然后检索其方法实例并从方法实例中检索方法标题。这是非常简单的结构:
{{var order.getPayment().getMethodInstance().getTitle()}}
这应该对你有帮助!
答案 1 :(得分:2)
方法Mage_Sales_Model_Order :: sendNewOrderEmail()负责发送新的ordr电子邮件。
$paymentBlock = Mage::helper('payment')->getInfoBlock($this->getPayment())
->setIsSecureMode(true);
$paymentBlock->getMethod()->setStore($storeId);
$paymentBlockHtml = $paymentBlock->toHtml();
...
$mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml
)
payment_html呈现块的html输出,因此您无法使用它。
您可以使用付款方式添加一个关键字(使用重写或本地/法师技巧),并使用交易电子邮件将此参数添加到主题。