Удалить поле «Телефон» из раздела «Информация для выставления счетов» в Magento

Как удалить telephone field из раздела платежной информации в magento. Но в информации о доставке мне нужно telephone field. Я могу скрыть телефон в файле billing.phtml. Но telephone field - это поле mandatory. Поэтому я не могу нажать кнопку "Продолжить".

Мне нужно поле telephone (как обязательное) в shipping Information page. И не нужно поле telephone в billing information page.

Как я могу это сделать? Пожалуйста, помогите мне... любая помощь очень ценна.


person Deepu Sasidharan    schedule 14.04.2015    source источник
comment
magentocommerce.com/magento-connect/configurable-checkout.html как Я помню, что этот модуль поместил в ваши отключенные поля какое-то значение по умолчанию в фоновом режиме.   -  person zhartaunik    schedule 14.04.2015
comment
SO не является службой написания кода. Если у вас есть код, но он не работает, опубликуйте его, чтобы мы могли помочь решить вашу проблему.   -  person Mark Fitzgerald    schedule 14.04.2015
comment
@ Марк Фитцджеральд, я не прошу код, но мне нужен совет или помощь, как это сделать. Если я что-то изменю на одной странице (выставление счетов), это повлияет на другую (доставка). Вот почему я размещаю вопрос здесь. Ссылка ниже говорит для общего случая: swarminglabs.com /   -  person Deepu Sasidharan    schedule 14.04.2015


Ответы (4)


Окончательное решение состоит из трех шагов:

  1. Удалите проверку на стороне клиента (javascript). Если они еще не существуют в вашей теме, скопируйте следующие файлы из базовой темы/темы по умолчанию в свою тему: template/checkout/onepage/billing.phtml
    В каждом из этих файлов найдите определяющее поле телефона и удалите требуемый класс из метки, удалите требуемый класс атрибута из ввода и обязательно удалите *.

  2. Переопределите класс Mage_Customer_Model_Address_Abstract. Скопируйте файл app/code/core/Mage/Customer/Model/Address/Abstract.php в app/code/local/Mage/Customer/Model/Address/Abstract.php. Это гарантирует, что обновления не сломают ваши модификации. Теперь откройте файл и найдите ту часть, где проверяется поле phone, оно должно выглядеть примерно так:

    if (!Zend_Validate::is($this->getTelephone(), 'NotEmpty')) {
        $errors[] = $helper->__('Please enter the telephone number.');
    }
    

    Вы можете либо полностью удалить эту часть, либо закомментировать, поместив ее между /* и */.

  3. Измените EAV клиента в базе данных. Откройте таблицу eav_attribute и найдите строку с attribute_code = “telephone”. Обратите внимание на attribute_id этой строки. Затем задайте для столбца is_required значение 0 (ноль).
    Теперь откройте таблицу customer_eav_attribute и найдите строку с таким же attribute_id, как вы отметили на предыдущем шаге. Установите для столбца validation_rules в этой строке значение NULL.

person JIGNESH    schedule 15.04.2015
comment
@ JIGNESH, это удаляет проверку телефона как на странице выставления счетов, так и на странице доставки. Мне нужно удалить его только со страницы выставления счетов. - person Deepu Sasidharan; 21.04.2015
comment
Вы можете использовать телефон доставки, используя классы magento на интерфейсе. класс css: ввод-текст обязателен-запись - person JIGNESH; 25.04.2015

app->code->core->mage->Eav->Model->Attribute->Data->Text.php

не меняйте в таблице базы данных ……… вы меняете в файле Text.php .. я упомянул путь ….

изменить это:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
   $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
}

to:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
if($label != 'Telephone')
    {
        $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
    }
}
person Kamal Jain    schedule 02.09.2015

Вы можете использовать расширение GoMage LightCheckout, это одностраничное решение для оформления заказа с множеством полезных опций, и одна из этих опций — возможность сортировать поля или удалять ненужные. Таким образом, вы можете отключить поле номера телефона, используя настройки панели администратора этого расширения.

person Chris Mclean    schedule 24.04.2015

app->code->core->mage->Eav->Model->Attribute->Data->Text.php

не меняйте в таблице базы данных ……… вы можете изменить в Text.php, создайте для него локальную копию, это означает, что редактирование основных файлов не рекомендуется в magento, поэтому создайте папку в app/code/local/Mage/ Eav/Модель/Атрибут/Данные/Text.php

измените эти строки:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
   $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
}

к этим:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
if($label != 'Telephone')
    {
        $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
    }
}

также

Измените эти строки:

$validateRules = $attribute->getValidateRules();        
                if (!empty($validateRules['min_text_length']) && $length < $validateRules['min_text_length']) {
                    $v = $validateRules['min_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or greater than %s characters.', $label, $v);
                }
                if (!empty($validateRules['max_text_length']) && $length > $validateRules['max_text_length']) {
                    $v = $validateRules['max_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or less than %s characters.', $label, $v);
                }

To :

$validateRules = $attribute->getValidateRules();
        if($label != 'Telephone')
            {
                if (!empty($validateRules['min_text_length']) && $length < $validateRules['min_text_length']) {
                    $v = $validateRules['min_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or greater than %s characters.', $label, $v);
                }
                if (!empty($validateRules['max_text_length']) && $length > $validateRules['max_text_length']) {
                    $v = $validateRules['max_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or less than %s characters.', $label, $v);
                }
            }
person Naveenbos    schedule 13.11.2015