【问题标题】:How to get payment method in an observer in Magento?如何在 Magento 的观察者中获取付款方式?
【发布时间】:2011-09-05 18:56:23
【问题描述】:

我有一个处理事件的观察者:sales_payment_invoice_pay(或类似的东西)。

如果付款方式是 PayPal,我要做的是发送发票。

在 1.4 版中一切正常~通过 $observer->getEvent()->getOrder()->getPayment->getMethodInstance()。

在 1.5+ 版本中,但我似乎找不到任何解决方案。 我也试过 getData() 但没有任何结果。

感谢任何帮助。谢谢

称我非常渴望得到答案是轻描淡写的。

【问题讨论】:

    标签: magento paypal observer-pattern


    【解决方案1】:

    看起来传递给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 的 - GiftCardAccount 中的increaseOrderGiftCardInvoicedAmount()),您可以在 Observer 方法中访问 Invoice 对象,如下所示:

    $invoice = $observer->getEvent()->getInvoice();
    

    发票是你能得到的所有东西,因为它是dispatchEvent() 传递给观察者的唯一东西。您无法直接访问订单,就像您尝试做的那样。

    然而,看看 Invoice 模型,它似乎有一个不错的 getOrder 方法,应该可以解决问题。我还没有测试过,但试试这个:

    $observer->getEvent()->getInvoice()->getOrder()->getPayment->getMethodInstance();
    

    干杯,祝你好运!

    【讨论】:

    • 不幸的是,它不起作用。我也是这样尝试的。
    • 对不起,它还没有工作——我猜是时候淘汰Mage::log()了。确保你的观察者首先被触发(如果你的事件没有被正确触发,什么都不会起作用!)。然后可能转储$observer->getEvent()->getInvoice() 返回的内容,以确保它是发票。继续沿着调用链向上工作,直到到达getMethodInstance。网上有很多关于调试 Magento 的好文章,祝你好运。
    【解决方案2】:

    我可以使用这个获取付款方式代码

    $observer->getEvent()->getInvoice()->getOrder()->getPayment()->getMethodInstance()->getCode()
    

    【讨论】:

      【解决方案3】:

      使用 varien 对象的 debug() 函数是处理此类事情的一个不错的选择。像这样:http://pastebin.com/wtdJdeLq - 我无法让代码在这个站点上工作,不想再尝试了。检查 pastebin 链接。

      这里有 order_id,像往常一样加载订单,getModel('...')(非常快),然后获取付款方式。

      【讨论】:

        【解决方案4】:

        使用此代码:$order->getPayment()->getMethodInstance()->getCode() ;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-04
          • 2020-12-15
          • 2011-06-07
          • 2012-03-10
          • 1970-01-01
          相关资源
          最近更新 更多