doupu1949 2014-09-12 17:52
浏览 57

Magento扩展错误:调用非对象上的成员函数

I have a Magento extension which is supposed to add a donation to PayPal order, but it's throwing an error in Model/Observer.php. It is when people are done with PayPal and are redirected back to my website. The URL when this error is shown is /paypal/express/placeOrder/. The error is Fatal error: Call to a member function getBaseDonation() on a non-object in [path]/Model/Observer.php on line 215. Line 215 is inside the 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;
    }

How can I solve this non-object problem? Thank you!

  • 写回答

1条回答 默认 最新

  • dongyi7513 2014-09-13 03:41
    关注

    First I think you should recheck the getShippingAddress() function to ensure it returns an object in our working flow.

    If it is, let check if your extension already override to ShippingAddress object to input the BaseDonation value.

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

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等