Magento变量显示电子邮件主题中的付款方式

时间:2012-12-19 10:13:10

标签: magento magento-1.7

我正在尝试在电子邮件主题中显示Magento中新订单电子邮件的付款方式。原因是我们的客户可以轻松地从Magento发送的电子邮件中确定该订单是通过支付网关还是Paypal Express发送的。

我不完全确定实现这一目标的最佳方法,我想我已经可以使用它了。

{{var payment_html}}

返回电子邮件模板的付款方式块...

{{var paymentMethod}}

在电子邮件主题中绝对没有返回任何内容,所以现在不确定这是否是折旧变量。

我认为还可以选择创建自定义属性,在静态块中调用它,然后在电子邮件模板中将其显示为自定义变量,但这似乎是一个相当漫长的方法,只是为了纯粹获取文本字符串“通过SagePay”或“通过Paypal Express”。

非常感谢任何帮助。

提前致谢。

2 个答案:

答案 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输出,因此您无法使用它。

您可以使用付款方式添加一个关键字(使用重写或本地/法师技巧),并使用交易电子邮件将此参数添加到主题。