Как сделать фамилию необязательной в Magento 1.8
Я обновил базу данных напрямую, чтобы сделать is_required по фамилии = 0.
Удалил средство проверки js для фамилии в ядре.
Удалено обязательное поле в интерфейсе виджета/name.phtml.
Однако сообщение "Поле "Фамилия обязательна" по-прежнему появляется в 3 местах:
During onepage checkout
When creating an order in admin for billing/shipping address
When inputing billing/shipping address for a customer in admin
Не мог бы кто-нибудь помочь мне, пожалуйста? Мы занимаемся оптовой продажей и используем только заказы на покупку и треску. Таким образом, клиент обычно вводит только название своей торговой точки в поле "Имя". Фамилия для них просто необязательна.
4 answers
Чтобы сделать поле Фамилия не обязательным для редактирования клиентом в администраторе, создайте сценарий обновления sql
/* @var $this Mage_Customer_Model_Resource_Setup */
$this->updateAttribute('customer_address','lastname','is_required','false');
Я сам искал ответ на эту проблему, и я объединил оба ваших ответа, так как вам нужно выполнить все эти шаги, поэтому я открываю мертвую тему для будущих пользователей.
1. Сначала неплохо запустить SQL-запрос (т.Е. в phpMyAdmin):
UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'
2. Избавьтесь от классов для проверки JS
Класс="требуется" и класс="обязательная запись" в любом месте, связанном с полем "фамилия", где есть формы для сохранения (т.Е. клиент/адрес/редактировать.phtml, постоянный/проверка/выставление счетов.phtml)
3. Скопируйте ваши основные файлы из:
/app/code/core/Mage/customer/Model/Address/Abstract.php
/app/code/core/Mage/customer/Model/Customer.php
/app/code/core/Mage/customer/etc/config.xml
В:
/app/code/local/Mage/customer/Model/Address/Abstract.php
/app/code/local/Mage/customer/Model/Customer.php
/app/code/local/Mage/customer/etc/config.xml
И прокомментируйте все, что связано с проверкой Zend фамилии.
/app/code/local/Mage/customer/Model/Address/Abstract.php :
/* if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) {
$this->addError(Mage::helper('customer')->__('Please enter the last name.'));
}
*/
/app/code/local/Mage/customer/Model/Customer.php
/* if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors[] = Mage::helper('customer')->__('The last name cannot be empty.');
}
*/
/app/code/local/Mage/customer/etc/config.xml
Вам необходимо выполнить поиск:
<lastname>
<billing>1</billing>
<shipping>1</shipping>
**<required>0</required>** // change from 1 to 0
<mapped>1</mapped>
</lastname>
1. Удалите классы для проверки JS из ваших шаблонов.
customer/widget/name.phtml
Удалить class="required"
из метки, относящейся к полю lastname
в строке 80
Удалить <?php echo $this->helper('customer/address')
->getAttributeValidationClass('lastname') ?>
из ввода, относящегося к lastname
в строке 82
2. Скопируйте ваши основные файлы с:
/app/code/core/Mage/customer/Model/Address/Abstract.php /app/code/core/Mage/customer/Model/Customer.php
В:
/app/code/local/Mage/customer/Model/Address/Abstract.php /app/code/local/Mage/customer/Model/Customer.php
И прокомментируйте все, что связано с проверкой Zend фамилии.
/app/code/local/Mage/customer/Model/Address/Abstract.php :
/*
if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) {
$this->addError(Mage::helper('customer')->__('Please enter the last name.'));
}
*/
/app/code/local/Mage/customer/Model/Customer.php
Php-код
/*
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors[] = Mage::helper('customer')->__('The last name cannot be empty.');
}
*/
3. Обновите config.xml файл для клиента
/app/code/core/Mage/customer/etc/config.xml
Скопировать в файл
/app/code/local/Mage/customer/etc/config.xml
Для поля last_name
установите требуемое значение "1" на "0"
4. При последнем обновлении с помощью запроса строки в базе данных
UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'
Для меня все, что я сделал, чтобы решить эту проблему, заключалось в следующем:
update eav_attribute set is_required=0 where attribute_code like 'firstname';
update eav_attribute set is_required=0 where attribute_code like 'lastname';