未定義のメソッドを呼び出すMage_Customer_Helper_Address :: getAttributeValidationClass()

私はMagentoのインストールを持っており、チェックアウトページで次のエラーが発生します。

Call to undefined method Mage_Customer_Helper_Address::getAttributeValidationClass()

この特定の関数の Mage_Customer_Helper_Address クラスをチェックし、クラスdocを検索しました。しかし、私はこの方法も文書では見ませんでした。誰が問題なのか教えていただけますか?

それはMagentoの組み込みメソッドですか?私はMagentoを初めて使い、サーバーにインストールされているバージョンは 1.4.2.0 です。

2
nl ru de

1 答え

バージョン1.4.2.0と互換性のない拡張機能があるかもしれませんか?たとえばMagento v.1.7では、このメソッドが Mage_Customer_Helper_Address クラスにあります。オーバーライドヘルパーを作成し、このメソッドを追加することができます:

/**
     * Get string with frontend validation classes for attribute
     *
     * @param string $attributeCode
     * @return string
     */
    public function getAttributeValidationClass($attributeCode)
    {
        /** @var $attribute Mage_Customer_Model_Attribute */
        $attribute = isset($this->_attributes[$attributeCode]) ? $this->_attributes[$attributeCode]
            : Mage::getSingleton('eav/config')->getAttribute('customer_address', $attributeCode);
        $class = $attribute ? $attribute->getFrontend()->getClass() : '';

        if (in_array($attributeCode, array('firstname', 'middlename', 'lastname', 'prefix', 'suffix', 'taxvat'))) {
            if ($class && !$attribute->getIsVisible()) {
                $class = '';//address attribute is not visible thus its validation rules are not applied
            }

            /** @var $customerAttribute Mage_Customer_Model_Attribute */
            $customerAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', $attributeCode);
            $class .= $customerAttribute && $customerAttribute->getIsVisible()
                ? $customerAttribute->getFrontend()->getClass() : '';
            $class = implode(' ', array_unique(array_filter(explode(' ', $class))));
        }

        return $class;
    }
3
追加された
間違いなくあなたのMagentoバージョンと互換性のない拡張機能が必要です。不足している機能を再作成するだけで、状況が悪化する可能性があります。私は、getAttributeValidationClass($ attributeCode)関数のすべてのコードを return ''; に置き換えることを提案できます。これは、問題のattributeCodeに検証クラスがないかのようになります。
追加された 著者 Oleg Ishenko,
完全性のためにMagento 1.7.0.0にMage_Customer_Helper_Address :: getAttributeValidationClass()が追加されました
追加された 著者 benz001,
返信のために@ありがとうございました。上記の関数をヘルパークラスに追加し、次回は他の関数がないことを示しました。バージョン1.7.2で同じクラスをチェックした後、これらすべての関数が参照されました。しかし、Magento管理セクションでは、バージョン1.4.2を示しています。私はそれが奇妙なものだと思っています。あなたはこれに対する解決策を持っていますか?
追加された 著者 Jayesh Ambali,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com