所以我试图在《万磁王》中建立一个固定数量的销售规则。当我登录到管理员,我去促销->购物车价格规则,并创建一个新的规则。当我转到条件选项卡(从左侧菜单)时,我开始创建销售规则条件。当我尝试从条件标签的下拉菜单中选择"产品子选择"时。它返回并foreach php警告-->
警告:为foreach()提供的参数无效/var/www/staging/app/code/core/Mage/Rule/Model/Condition/Abstract.php第246行
我还注意到,我移植到这个magento实例的一些规则有同样的错误。但似乎只有当从端口设置"产品子选择"或当我尝试从头创建一个时才会发生这种情况。
这个链接描述了我遇到的类似问题(对不起,部分是俄语)http://magento-forum.ru/topic/851/
我还读到这是1.5的一个核心问题。但已修复http://www.magentocommerce.com/bug-tracking/issue?issue=11214(可能需要登录Magento查看此问题)
我验证了代码已经在app/code/core/Mage/Rule/Model/Condition/Abstract.php中的第246行进行了更新
谁能给我提供更多的信息,告诉我如何去修复这个bug ?我已经检查了具有相同数据集的Magento Enterprise 1.10的多个实例,并且都有相同的错误。提前感谢,如果我能提供更多的信息,请告诉我。
由于Magento企业版1.10是基于社区版1.5,因此由Magento核心团队发布补丁来修复这个特定的错误是有意义的。在这种情况下,您可以安全地修改core,因为您正在应用core代码。
该问题已在CE 1.6.0.0中修复。根据以下责任,通过修改方法getValueSelectOptions()
https://github.com/lokeycoding/magento mirror/blame/magento - 1.6 -/- app/code/core/mage/rule/model/condition/abstract.php # L246
所以你只需要:
打开应用程序/代码/核心/法师/规则/模型/条件/Abstract.php
定位getValueSelectOptions()方法
将其内容替换为代码团队更改的以下代码:
public function getValueSelectOptions() { $valueOption = $opt = array(); if ($this->hasValueOption()) { $valueOption = (array) $this->getValueOption(); } foreach ($valueOption as $k => $v) { $opt[] = array('value' => $k, 'label' => $v); } return $opt; }
保存文件并确保问题已解决