IWD Onepage Checkout的Magento致命错误

时间:2014-05-31 08:58:33

标签: php jquery ajax magento

我正在使用magento one page checkout进行快速结帐流程。

将产品添加到购物车时会出现致命错误。在j2t ajax和标题购物车区域显示致命错误,但重新加载页面错误后,产品已添加到购物车。

在PHP中,错误日志显示以下错误

PHP Fatal error:  Call to a member function addLink() on a non-object in /home/public_html/app/code/community/IWD/Opc/Block/Links.php on line 17

第17行

$parentBlock->addLink($text, 'onepage', $text, true, array('_secure'=>true), 60, null, 'class="top-link-checkout"');

我已经尝试禁用ajax购物车,并且还禁用了编译功能,但仍然会抛出错误。

知道它出现错误的原因吗?

提前谢谢你:)

2 个答案:

答案 0 :(得分:9)

我自己解决了这个问题。不管怎样,谢谢。

如果有人有此问题。 以下是解决方案

转到:/ Magento文件夹/ app / code / community / IWD / Opc / Block / Links.php

查找:

if (Mage::helper('opc')->isEnable()){
        $parentBlock->addLink($text, 'onepage', $text, true,     array('_secure'=>true), 60, null, 'class="top-link-checkout"');
    }
else{
        $parentBlock->addLink($text, 'checkout', $text, true,     array('_secure'=>true), 60, null, 'class="top-link-checkout"');
    }

    return $this;
}

将其替换为:

if ($parentBlock = $this->getParentBlock()) {
         $text = $this->__('Checkout');
         $parentBlock->addLink($text, 'checkout', $text, true, array(), 60, null, 'class="top-link-checkout"');
     }
     return $this;
 }

清除缓存和Cookie,您已完成:)

答案 1 :(得分:0)

稍微好一点的方法(直到IWD解决这个问题,就是这样)是做Muk建议的,并且只是将整个块包裹在" is_object"检查。

if (is_object($parentBlock)) {
  $text = $this->__('Checkout');
  if (Mage::helper('opc')->isEnable()){
    $parentBlock->addLink($text, 'onepage', $text, true, array('_secure'=>true), 60, null, 'class="top-link-checkout"');
  } else {
    $parentBlock->addLink($text, 'checkout', $text, true, array('_secure'=>true), 60, null, 'class="top-link-checkout"');
  }
}