
上图是Magento的新订单确认邮件的图片。在我们正在开发的网站上,我们使用Fontis澳大利亚扩展(http://www.magentocommerce.com/magento-connect/fontis-australia.html)来实现BPay支付方法。扩展可以正常工作,除了在订单确认电子邮件上,电子邮件参考始终显示000000。
我试着查看它,发现生成的ref编号需要订单ID作为输入才能生成正确的ref编号。扩展使用以下代码来获取支付信息块上的最后一个订单号: Mage::getSingleton('checkout/session')->getLastRealOrderId();= $order_id
我尝试使用并打印来自其他控制器的结果,它显示了正确的订单号。但似乎对于电子邮件上的支付信息块,订单号信息无法检索。实际上,在结帐成功页面上也调用了相同的块,并且显示正确。
有没有人可以建议其他方式来获得最后的订单id在支付信息块上的Magento电子邮件?
发布于 2012-02-10 20:36:26
在info模板中,您可以使用$order = $this->getInfo()->getOrder();来获取Mage_Sales_Model_Order对象。然后,您可以通过$order->getData('increment_id')获得当前订单id。
但使用此代码时,您会在签出过程中出错,因为$this->getInfo()会返回其他模型。
因此,对于我来说,没有错误的肮脏解决方案是:
$info = $this->getInfo();
if ($info instanceof Mage_Sales_Model_Order_Payment) {
$order = $info->getOrder();
echo $order->getData('increment_id'));
}https://stackoverflow.com/questions/9226991
复制相似问题