Как я могу удалить telephone field
от раздел платежной информации в magento
, Но в информация о доставке я нуждаюсь telephone field
, Я могу скрыть телефон, поданный в billing.phtml
файл. Но telephone field
является mandatory
Я не могу нажать кнопку «Продолжить».
я нуждаюсь telephone
поле (как обязательное) в shipping Information page
, И не нужно telephone
поле в бilling information page
,
Как я могу это сделать? Пожалуйста, помогите мне … любая помощь действительно заметна.
Окончательное решение содержит три этапа:
Удалить проверку на стороне клиента (JavaScript)
Если они не существуют в вашей теме, скопируйте следующие файлы из базовой / стандартной темы в вашу тему:
template/checkout/onepage/billing.phtml
В каждом из этих файлов найдите поле, определяющее телефонное поле, и удалите требуемый класс из метки, удалите класс обязательного атрибута из входных данных и обязательно удалите *.
Переопределить 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.');
}
Вы можете полностью удалить эту часть или закомментировать ее, поместив ее между /*
а также */
,
Изменить EAV клиента в базе данных
Открыть стол eav_attribute
и искать строку с attribute_code = “telephone”
, Запишите attribute_id
этого ряда. Далее установите столбец is_required
в 0
(нуль).
Теперь откройте стол customer_eav_attribute
и искать строку с тем же attribute_id
как вы отметили в предыдущем шаге. Установить столбец validation_rules
в этом ряду к NULL.
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);
}
}
Вы можете использовать расширение GoMage LightCheckout, это одностраничное решение для проверки с множеством полезных опций, и одна из этих опций — это возможность сортировать поля или удалять те, которые вам не нужны. Таким образом, вы можете отключить поле номера телефона, используя настройки админ-панели этого добавочного номера.
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);
}
}