我真的希望有人之前遇到过这种情况,谷歌搜索并没有让我走得太远。
我正在将我的商店从1.5.0.1升级到1.6.2。值得庆幸的是,一切似乎进展顺利,但我遇到了一个非常奇怪的问题。
看来Magento现在在默认主题中包含了一个新模板 - app/design/frontend/base/default/template/persistent
当我尝试结帐并运行一些测试订单时,我一直收到此错误 - http://pastie.org/3337035
所以我认为我的自定义主题与升级有关,并暂时切换回新的默认主题。不,仍然有同样的错误。然后我尝试将新的/persistent
模板目录复制到我的自定义主题,这也没有帮助。
此时我的解决方案是将相关代码注释掉,如下所示:(在persistent / checkout / onepage / billing.phtml中)
<?php //if ($this->isTaxvatEnabled()):?>
<li><?php //echo $this->getTaxvatHtml() ?></li>
<?php //endif; ?>
这似乎修复了错误并允许结帐无问题,但我真的想知道这里发生了什么。究竟什么是Taxvat?我也试过这篇文章中的解决方案 - error with magento checkout无济于事。
这是一个测试装置,我真的想在我使用1.6.2之前清除它。感谢您的任何见解。
答案 0 :(得分:1)
您的phtml
模板文件没问题。但是,其父块(Mage_Checkout_Block_Onepage_Billing
)缺少isTaxvatEnabled
。这种方法是Magento 1.6分支中的一种新方法,因此有两个可能的原因
“您”(意味着您或Magento Connect)无法更新app/code/core/Mage/Checkout/Block/Onepage/Billing.php
您或之前的开发人员或第三方模块创建了代码池覆盖,并且有一个旧版本的结算单元位于app/code/community/Mage/Checkout/Block/Onepage/Billing.php
,app/code/local/Mage/Checkout/Block/Onepage/Billing.php
或其中另一个被添加到路径的位置(很少见,但我已经看过了)。
查找此文件的最快方法是将以下代码添加到PHTML模板文件中
$rClass = new ReflectionClass($this);
var_dump($rClass->getFilename());
如果此文件位于core
,那么您的升级失败,并且您的系统只有1.5和1.5的一半。造成这种情况的最常见原因是脑死亡的Magento Connect会在某些类型的文件权限错误中无声地失败,尽管上传所有文件失败是另一个常见原因。再次开始升级,将升级文件树与新下载的树进行区分。
如果此文件位于其他位置,则需要
确定在community
或local
代码池中添加了哪些方法,属性或其他代码
制作1.6.2 Billing.php
将方法从一个添加到文件
将本地Billing.php
替换为您刚创建的Billing.php
。