Удалите поле телефона из раздела Информация о платежах в Magento

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

я нуждаюсь telephone поле (как обязательное) в shipping Information page, И не нужно telephone поле в бilling information page,

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

1

Решение

Окончательное решение содержит три этапа:

  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. Это гарантирует, что обновления не сломают ваши модификации. Теперь откройте файл и найдите часть, где он проверяет поле телефона, оно должно выглядеть примерно так:

    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.

3

Другие решения

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);
}

чтобы:

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

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

0

app-> код-> core-> mage-> Eav-> Модель-> Attribute-> Данные-> Text.php

не изменяйте в таблице базы данных ……… вы можете изменить в Text.php, пожалуйста, создайте для него локальную копию, это означает, что редактирование основных файлов не является хорошей практикой в ​​magento, поэтому создайте папку в app / code / local / Mage / Eav / Модель / Атрибут / Data / 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);
}

Кому:

$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);
}
}
0