Иногда в интернет-магазине хочется расширить неким образов функционал системы.

Например, сделать в 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.');
}

Выполнив все шаги, чистим кеш и можем спокойно оформлять заказы, не указывая телефон.