Обязательное поле при регистрации сделать не обязательным

Автор kdvbpspr, 27 апреля 2015, 09:08:49

« назад - далее »

kdvbpspr

Подскажите как обязательное поле при регистрации сделать не обязательным, а именно
убрать обязательность заполнения с полей
- Фамилия
- почтовый индекс

престашоп 1.6

На форуме в основном рассматриваются варианты с скрытием не нужных полей. Мне же нужно сделать заполнение полей не обязательным.

Заранее большое спасибо!

Вот этот вариант не помогает:
Сделать поля в форме регистрации не обязательными:
В файле - /classes/Customer.php
Сделать поля в форме адреса не обязательными:
В файле — /classes/Address.php


public static $definition = array(
...


Заменить

'required' => true
на

'required' => false

Для индекса 'required' вообще отсутствует:
'postcode' => array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12),

DarinSr

Чтобы были не обязательные поля, нужно убрать проверку в классе, контроллере, шаблоне и javascript функциях.
В некоторых случаях нужно изменить тип поля в таблице.

Например, /classes/Address.php
'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128),
удлить
'required' => true,

В таблице address у этого поля установить значение по умолчанию и разрешить NULL.
ALTER TABLE `ps_address` CHANGE `address1` `address1` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;

В шаблоне /themes/default-bootstrap/address.tpl
удалить
class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}"

В /themes/default-bootstrap/js/order-opc.js удалить проверку.

В админке в настройках адреса у страны и клиента не устанавливать обязательные поля.

kdvbpspr

С индексом помогло справиться
AuthController.php и AddressController.php, закрыть:
/*elseif(empty($postcode) && $country->need_zip_code)*/
/*$this->errors[] = Tools::displayError('A Zip / Postal code is required.');*/


А вот с lastname...
Внес все выше изложенные предложения.
Однако если поле lastname указывать пустым. В базе перезапись не производится. Только если не пустое значение.

mistral

Можно если пустое поле, то в проверке в контроллере добавить какое-нибуть определение, NULL или "н/а".

polosat

Проверку индекса можно было отключить даже проще - в настройках страны в админке.
В lastname еще можно попробовать поставить пробел, если значение пустое. Раньше работало.

iZlodey

Цитата: DarinSr от 27 апреля 2015, 09:32:49
Чтобы были не обязательные поля, нужно убрать проверку в классе, контроллере, шаблоне и javascript функциях.
В некоторых случаях нужно изменить тип поля в таблице.

Например, /classes/Address.php
'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128),
удлить
'required' => true,

В таблице address у этого поля установить значение по умолчанию и разрешить NULL.
ALTER TABLE `ps_address` CHANGE `address1` `address1` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;

В шаблоне /themes/default-bootstrap/address.tpl
удалить
class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}"

В /themes/default-bootstrap/js/order-opc.js удалить проверку.

В админке в настройках адреса у страны и клиента не устанавливать обязательные поля.
А как в гостевой покупке убрать страну и регион? На форуме не нашел вразумительного ответа для prestashop 1.6.

DarinSr

ЦитироватьА как в гостевой покупке убрать страну и регион?
Так же как и для авторизированного пользователя. Оба варианта используют одни и теже шаблоны.

genela

Добрый день!
prestashop 1.6.1.1. Отредактировала создание учетной записи при оформлении заказа. Выдает ошибку: Вы должны указать хотя-бы один номер телефона.
Редактировала
order-opc-new-account.tpl
Address.php
Customer.php
Оставила поля:
Имя, Адрес, Мобильный телефон
Помогите, пожалуйста, новичку. Никак не могу понять, что нужно сделать, чтобы ошибка исчезла.

DarinSr

Цитата: DarinSr от 21 июля 2015, 09:08:14
Включение / выключение  обязательных полей в админке:
Панель управления > Локализация > Страны > Редактирование > Страна > Формат адреса
Обязательные поля для адреса

Панель управления > Клиенты
Обязательные поля

Панель управления > Клиенты > Адреса
Обязательные поля

Как убрать обязательные поля в форме регистрации:
http://prestashop-forum.ru/index.php/topic,438.msg2506.html
http://prestashop-forum.ru/index.php/topic,4326.msg25195.html
http://prestashop-forum.ru/index.php/topic,438.msg2225.html

Для того чтобы добавить поля в форму заказа нужно:
1. Добавить поле в шаблон tpl
2. Добавить в это поле в таблицу
3. Доавить описание этого поля в класс
4. Добавить проверку в контроллер