我将Magento从v 1.4.x升级到1.9.2.0。除了Paypal模块,所有似乎都可行。
如果我去系统 - >在Admin中配置,或在前端的Checkout页面,我得到一个空白屏幕。
当我进入系统时,error_log显示此错误 - >配置:
PHP Fatal error: Call to undefined method Mage_Paypal_Helper_Data::getConfigurationCountryCode() in /home/mysite/public_html/includes/src/Mage_Paypal_Model_Observer.php on line 130, referer: http://www.mysite.co.uk/index.php/site_admin/dashboard/index/key/7ec25272dd6e12345667015d73b305/
当我去前端的结帐时,error_log显示了这个:
PHP Fatal error: Undefined class constant 'MERCHANT_COUNTRY_CONFIG_PATH' in /home/mysite/public_html/includes/src/Mage_Paypal_Model_Config.php on line 769, referer: http://www.mysite.co.uk/checkout/onepage/
所有文件看起来都存在...特别是具有类Mage_Paypal_Helper_Data和getConfigurationCountryCode()方法的Helper / Data.php文件。所以它似乎只是没有加载这个助手类。
有没有人知道它为什么不加载?
由于
答案 0 :(得分:2)
我已经解决了这个问题。在Mage_Paypal_Helper_Data
文件夹中有一个具有相同local/Mage
类的Paypal文件夹,但没有必要的方法。因此加载了这个类。该类必须在1.4.x中保留,其中它以某种方式工作。删除此文件夹会导致core/Mage/Paypal
类正常工作。
答案 1 :(得分:0)
这也解决了我的问题,但升级到1.9.2.2
后我遇到了不同的错误。
当我点击paypal express结账时,会出现错误页面:
致命错误:在第98行的public_html / app / code / core / Mage / Paypal / Controller / Express / Abstract.php中调用未定义的方法Mage_Paypal_Model_Express_Checkout :: setIsBml()。
将我的头撞到墙上一段时间之后,我终于检查了local/mage
文件夹,发现了18个月之前由之前的开发人员完成的PayPal结账覆盖。有意义的是升级后出现错误,因为覆盖是旧版magento的paypal设置。
删除覆盖,修复完成并排序!
干杯