所以我试图在Magneto中制定一个固定金额的销售规则。当我登录管理员时,我会去促销活动 - >购物车价格规则并创建新规则。当我进入条件选项卡(从左侧菜单)我开始创建我的销售规则条件。当我尝试从条件标签的下拉菜单中选择“产品子选择”时。它返回并预告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才能查看此问题)
我在第246行验证了代码已在app / code / core / Mage / Rule / Model / Condition / Abstract.php中更新
任何人都可以向我提供有关如何修复此错误的其他信息。我已经使用相同的数据集检查了多个Magento Enterprise 1.10实例,并且都有相同的错误。在此先感谢,如果我能提供更多信息,请告诉我。
答案 0 :(得分:0)
由于Magento Enterprise Edition 1.10基于社区版1.5,因此Magento核心团队的补丁修复该特定错误是有意义的。在这种情况下,您可以安全地修改核心,因为您正在应用核心代码。
此问题已在CE 1.6.0.0中修复。根据以下指责,它通过修改方法getValueSelectOptions()
所以你只需要:
打开app / code / core / Mage / Rule / Model / Condition / 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;
}
保存文件并确保问题得到解决。