我正在使用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购物车,并且还禁用了编译功能,但仍然会抛出错误。
知道它出现错误的原因吗?
提前谢谢你:)
答案 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"');
}
}