gpt4 book ai didi

magento - 如何在 Magento 的观察者中获取付款方式?

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:12 25 4
gpt4 key购买 nike

我有一个处理事件的观察者: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),它在核心中有一个观察者(至少在企业中 - increaseOrderGiftCardInvoicedAmount() 在 GiftCardAccount 中),您可以访问 Invoice在你的 Observer 方法中这样的对象:

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

发票是您将能够获得的全部内容,因为它是 dispatchEvent() 传递给观察者的唯一内容。您无法像您尝试的那样直接访问订单。

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

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

干杯,祝你好运!

关于magento - 如何在 Magento 的观察者中获取付款方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com