【问题标题】:Magento Extension error: Call to a member function on a non-objectMagento 扩展错误:调用非对象上的成员函数
【发布时间】:2014-09-12 17:52:39
【问题描述】:

我有一个 Magento 扩展程序,它应该向 PayPal 订单添加捐款,但它在 Model/Observer.php 中引发错误。当人们使用 PayPal 并被重定向回我的网站时。显示此错误时的 URL 是 /paypal/express/placeOrder/。错误是Fatal error: Call to a member function getBaseDonation() on a non-object in [path]/Model/Observer.php on line 215。第 215 行在 if (!$donation) {

public function addPaypalItem($observer)
    {
        $cart = $observer->getEvent()->getPaypalCart();
        $quote = $cart->getSalesEntity();

        $donation = $quote->getBaseDonation();
        if (!$donation) {
            $donation = $quote->getShippingAddress()->getBaseDonation() ? $quote->getShippingAddress()->getBaseDonation() : $quote->getBillingAddress()->getBaseDonation();
        }

        if ($donation > 0) {
            $cart->addItem(
                Mage::helper('donations')->__('Donation'),
                1,
                $donation
            );
        }

        return $this;
    }

如何解决这个非对象问题?谢谢!

【问题讨论】:

    标签: php magento paypal


    【解决方案1】:

    首先,我认为您应该重新检查 getShippingAddress() 函数,以确保它在我们的工作流程中返回一个对象。

    如果是,请检查您的扩展是否已经覆盖到 ShippingAddress 对象以输入 BaseDonation 值。

    $quote->getBaseDonation() is different from $quote->getShippingAddress()->getBaseDonation();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 2015-06-16
      • 2016-02-02
      • 2014-05-06
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多