如何在Magento的观察员中获得付款方式?

问题描述

| 我有一个处理事件的观察者:sales_payment_invoice_pay(或类似的东西)。 我要执行的操作是在付款方式为PayPal的情况下发送发票。 在1.4版中一切正常,只需执行$ observer-> getEvent()-> getorder()-> getPayment-> getmethodInstance()。 在1.5版或更高版本中,我似乎找不到任何解决方案。 我也尝试使用getData()但没有任何结果。 任何帮助表示赞赏。谢谢 急切地称呼我为答案将是轻描淡写。     

解决方法

        看来,传递给
sales_order_invoice_pay
事件的唯一数据是
$this
,它将是
sales/order_invoice
模型。我通过搜索Magneto核心代码发现了这一点,它在Invoice.php中被触发,如下所示:
Mage::dispatchEvent(\'sales_order_invoice_pay\',array($this->_eventObject=>$this));
查看一个类似事件(
sales_order_invoice_register
),该事件具有观察者(在Enterprise的核心中,至少-Gift5ѭ在GiftCardAccount中),您可以在Observer方法中像这样访问Invoice对象:
$invoice = $observer->getEvent()->getInvoice();
发票是您将能获得的全部,因为它是
dispatchEvent()
传递给观察员的唯一物品。您无法像尝试那样直接访问订单。 但是,从Invoice模型来看,它似乎有一个不错的
getOrder
方法,应该可以解决问题。我尚未测试过,但是请尝试以下操作:
$observer->getEvent()->getInvoice()->getOrder()->getPayment->getMethodInstance();
干杯,祝你好运!     ,        我可以使用此方法获取付款方式代码
$observer->getEvent()->getInvoice()->getOrder()->getPayment()->getMethodInstance()->getCode()
    ,        使用varien对象的debug()函数是此类事情的不错选择。.像这样:http://pastebin.com/wtdJdeLq-我无法获得在该站点上工作的代码东西,不要费心尝试不再。检查pastebin链接。 那里有order_id,像往常一样加载订单,getModel(\'... \')(非常快),并获得付款方式。     ,        用户此代码:$ order-> getPayment()-> getMethodInstance()-> getCode();