0

所以我试图在万磁王中建立一个固定数量的销售规则。当我登录到管理员时,我转到促销 --> 购物车价格规则并创建一个新规则。当我转到“条件”选项卡(从左侧菜单)时,我开始创建我的销售规则条件。当我尝试从条件标签的下拉菜单中选择“产品子选择”时。它返回并 foreach php 警告 -->

警告:在第 246 行的 /var/www/staging/app/code/core/Mage/Rule/Model/Condition/Abstract.php 中为 foreach() 提供的参数无效

我还注意到我移植到这个 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 实例,并且都有相同的错误。提前致谢,如果我能提供更多信息,请告诉我。

4

1 回答 1

0

由于 Magento 企业版 1.10 基于社区版 1.5,因此 Magento 核心团队的补丁修复该特定错误是有意义的。在这种情况下,您可以安全地修改核心,因为您正在应用核心代码。

该问题已在 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

所以你只需要:

  1. 打开app/code/core/Mage/Rule/Model/Condition/Abstract.php

  2. 找到 getValueSelectOptions() 方法

  3. 将其内容替换为代码团队所做更改的以下代码:

        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;
        }
    
  4. 保存文件并确保问题已解决。

于 2013-01-05T12:28:19.730 回答