0

そこで、Magneto で定額販売ルールを立ち上げようとしています。admin にログインしたら、Promotions --> Shopping Cart Price Rules に移動し、新しいルールを作成します。[Conditions] タブ (左側のメニューから) に移動すると、販売ルール条件の作成を開始します。条件タグのドロップダウンメニューから「商品のサブセレクション」を選択しようとすると。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 にログインする必要がある場合があります)

app/code/core/Mage/Rule/Model/Condition/Abstract.php の 246 行目でコードが更新されていることを確認しました

このバグを修正する方法について、追加情報を教えてください。同じデータ セットを持つ Magento Enterprise 1.10 の複数のインスタンスを確認しましたが、すべて同じバグがあります。事前に感謝します。さらに情報を提供できる場合はお知らせください。

4

1 に答える 1

0

Magento Enterprise Edition1.10はコミュニティエディション1.5に基づいているため、Magentoコアチームからのパッチでその特定のバグを修正することは理にかなっています。この場合、コアコードを適用しているため、コアを安全に変更できます。

この問題はCE1.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 に答える