我已加载New Order交易电子邮件以插入自定义块。我在订单商品表格布局句柄调用下插入它,并尝试将其传递给$order
变量。
{{layout handle="sales_email_order_items" order=$order}}
...
{{block type="mymodule/sales_order_email_description" order=$order}}
在Mymodule_Block_Sales_Order_Email_Description类中我写道:
protected function _construct() {
$this->setTemplate('email/order/description.phtml');
}
最后在description.phtml中我尝试访问订单:
$order = $this->getOrder();
...
$order->getId()
此时,异常上升:
Fatal error: Call to a member function getId() on a non-object ... ...
我遵循了几个教程,比如magento email templates,但我仍然坚持这个致命的错误。
有什么想法吗?
答案 0 :(得分:0)
让我们来看看;
您可以使用模板定义块,不再需要构造。
{{block type="mymodule/sales_order_email_description" template="email/order/description.phtml" order=$order}}
确实,您可以使用$this->getOrder()
获取参数值。但$order->getId()
可能无效,$order->getEntityId()
。
也许您可以尝试使用var_dump查看是否有任何订单数据。
答案 1 :(得分:-1)
在.phtml文件中尝试此操作:
$order = $this->getData('order');
如下所述:http://www.webspeaks.in/2011/06/customize-new-order-email-template-in-magento.html