7 июнь 2012
Иногда в интернет-магазине хочется расширить неким образов функционал системы.
Например, сделать в Magento при оформлении заказа необязательным полем телефонный номер.
Первым делом убираем javascript-защиту в формах в следующих шаблонах:
app/design/frontend/default/название-вашей-темы/template/customer/address/edit.phtml
app/design/frontend/default/название-вашей-темы/template/checkout/onepage/billing.phtml
app/design/frontend/default/название-вашей-темы/template/checkout/onepage/shipping.phtml
app/design/frontend/default/название-вашей-темы/persistent/checkout/onepage/billing.phtml
В каждом файле находим поле с telephone, и убираем:
У label - класс required + ненужную уже звездочку - *
У input - класс required-entry
Вторым шагом убираем требование проверки в базе mysql;
UPDATE eav_attribute SET is_required = '0' WHERE attribute_code='telephone';
Иногда может потребоваться в таблице customer_eav_attribute найти и удалить строки с attribute_id равным id атрибута telephone.
Третий шаг (если предыдущие не помогли)- блокировка проверки в ядре Magento:
Копируем файл 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.');
}
Выполнив все шаги, чистим кеш и можем спокойно оформлять заказы, не указывая телефон.