2014-09-12 136 views
0

我有一个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)内{Magento扩展错误:调用非对象上的成员函数

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; 
    } 

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

回答

0

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

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

$quote->getBaseDonation() is different from $quote->getShippingAddress()->getBaseDonation(); 
相关问题