2

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

Call to undefined method Mage_Customer_Helper_Address::getAttributeValidationClass()

この特定の関数についてクラスをチェックMage_Customer_Helper_Addressし、クラスドキュメントも検索しました。しかし、私はこのメソッドをドキュメントにも見ませんでした。誰かが問題になる可能性があるものを教えてもらえますか?

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

4

1 に答える 1

3

バージョン 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;
    }
于 2013-01-29T12:23:46.240 に答える