Jump to content
123456

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

Recommended Posts

Может быть кто-нибудь знает как сделать некоторые поля в форме регистрации обязательными для заполнения? Конкретно хотелось бы, что-бы пользователь не остовлял поле ввода телефонного номера пустым. Как сделать его обязательным для заполнения?

  • Like 3

Share this post


Link to post
Share on other sites

Для этого надо внести изменения в:
1. classes/Address.php (отвечает за проверку данных формы на стороне сервера).
Строка 80:

protected    $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city');



Можете добавить в перечисление 'phone', я еще и убрал 'postcode'.
2. Внести правки в соответствующие tpl-файлы.

  • Like 2

Share this post


Link to post
Share on other sites

...
2. Внести правки в соответствующие tpl-файлы.

Спасибо за оперативный и профессиональный ответ.
Address.php изменил, а можно ещё поподробней насчёт tpl-файлы? Что конкретно надо сделать?

Share this post


Link to post
Share on other sites

В папке Вашей темы файлы address.tpl и authentication.tpl - убрать звёздочки у необязательных полей и поставить тем полям, которые Вы сделали обязательными, чтобы посетителю сайта было понятно что к чему.
Там же я поубирал всякие подозрительные для нашего человека поля типа пола и даты рождения.

Share this post


Link to post
Share on other sites

Я тоже изменил обязательные переменные при регистрации. В tpl сделал соответствующие изменения, но напротив телефонных номеров (которые я сделал обязательными) стоят звездочки не красного цвета, а почему-то серого. Почему так? В коде вроде нет, чтобы звездочки напротив имени и в других местах были именно красного цвета. Или я ошибаюсь?

Share this post


Link to post
Share on other sites

Есчё такой вопрс как в форме ригестрации переиминовать поля и добавит новые ?

Share this post


Link to post
Share on other sites
Есчё такой вопрс как в форме ригестрации переиминовать поля и добавит новые ?

В переводах выбираете раздел Field name translations и меняете существующие переводы.

А с добавлением... Общая рекомендация -- вообще, разрешить оформление покупки без регистрации (для этого есть и специальная настройка в админке). Регистрация же вообще, а тем более -- усложнённая, это то, на что покупатель идёт, что называется, стиснув зубы. Подумайте над этим моментом!
  • Like 1

Share this post


Link to post
Share on other sites

V.I.P.

да но мне это нжно для юредических лий где они будут указитьать Рег нр. , Название, Банк, номер счёта ! Вовшем мне нужно чтобы клиет вводил реквизиты свои !

Share this post


Link to post
Share on other sites

V.I.P.

Senkssss ТЫ гений я неделю сидел голову ломал

Share this post


Link to post
Share on other sites

Хочу дополнить предыдущее своё рассуждение.

Говорю приятелю: "А знаешь, что твой ФейсБук сотрудничает с ЦРУ и ФБР?" "Ну, и что, -- говорит, -- кто я такой, чтобы мне от кого-то, вообще, таиться? Червяк!" Не все, однако, считают себя червяками. И не всем хочется, чтобы, кто бы то ни был, знал о них слишком много. В ЖЖ за многие годы ни разу не попытались выведать у меня ни прямо, ни в обход больше моего ника. И я там -- дома. В ФейсБуке я зарегистрировался два года назад и туда не хожу. Зато сам ФейсБук обо мне не забывает. Снова и снова шлёт мне письма с просьбой вернуться. Снова и снова пытается выведать у меня больше того, что я сказал при регистрации. Надо сказать, умно под кожу лезет, зараза. Потому и не отправил его до сих пор в СПАМ; очень любопытно, какую хитрость ещё придумает.

Share this post


Link to post
Share on other sites

V.I.P.

А как поменять значение для колонкии ??? Ну типо была фамилия я переиминовар в Рег нр. а он мне пишет фамилия недопустимое значение ???

Share this post


Link to post
Share on other sites

Если это для юридических лиц, то нужно спрашивать, скорее всего, у Sorsa. Потому что одного добавления необходимых полей в форму регистрации в этом случае будет не достаточно. Есть же ещё форма договора (и, наверно, не только это), где все эти данные должны также быть отражены в нужном месте и в нужной форме. К Sorsу!

Share this post


Link to post
Share on other sites
V.I.P.

А как поменять значение для колонкии ??? Ну типо была фамилия я переиминовар в Рег нр. а он мне пишет фамилия недопустимое значение ???

Для "графы"? Но она так настроена, что запись, которая по виду не может быть фамилией, не пройдёт:
1. двойные фамилии в русском пишутся через чёрточку,
2. фамилия не может включать знаков препинания.

Если Вы хотите полем ввода воспользоваться для вписывания туда регистрационного номера, то он должен иметь вид Рег-Номер (фамилия, получается, такая!)

Но, боюсь, и это не пройдёт. Вряд ли, цифры в фамилии допускаются.

Короче, всё это самодеятельность. Спрашивайте, как надо сделать, у Sorsа!

Share this post


Link to post
Share on other sites

Не знаю, учитывается ли это в Престе, но вообще, фамилии, состоящие из одних цифр существуют. Недавно попадавась статья об одном чуваке, который захотел себе такую фамилию. Но он, в конце концов, дорого за это заплатил, потому и согласились вписать ему эту дурь в паспорт. И кажется, там были не одни цифры, не помню точно...

Share this post


Link to post
Share on other sites

Тоесть поменять это неля чтобы можно было и цыфры вводить ! ?

Share this post


Link to post
Share on other sites

Если формат фамилии не предусматривает цифр, то никакой номер не пройдёт. Ясное дело. Но можно добавить специальную графу для регистрационного номера! Потому и говорю, нужно обращаться к Sorsу. Он, в основном, модули пишет или существующие нужным образом подправляет. Если он сам Вашу тему не заметит, обратитесь к нему на его сайте.

Share this post


Link to post
Share on other sites

Хочу убрать индекс из Быстрого заказа.. удалил в шаблоне, а вот в Adress.php postcode нет в списке обязательных, но без индекса отказывается делать быстрый заказ..

protected    $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'city');


где копать?

Share this post


Link to post
Share on other sites

Индекс отключать надо в настройках Страны, как и еще несколько обязательных полей..

Share this post


Link to post
Share on other sites

Сделал все как вы указали в начале поста,нужно было удалить несколько строк в регистрации пользователя в том числе поле фамилия.

Удалил поле Lastname в address.tpl и authentication.tpl, в classes/Address.php тоже удалил этот параметр. Станица регистрации получилась как и задумывалась, но вот сама регистрация не проходит, магазин выдает сообщение об ошибке

Выявлено ошибок: 1 ошибка :

Фамилия обязательно для заполнения

Где копать подскажите кто сталкивался

Share this post


Link to post
Share on other sites


Где копать подскажите кто сталкивался

Еще не смотрел скрипт но:
Вообще чтобы в будущем не искать в слепую можно ТоталКоммандером пользоваться. Или если Огнелис стоит, использовать аддон Фаирбаг, не знаю для Оперы написали или нет, не проверял...
Часто на форумах читаю, где найти то или это, предложенные утилиты очень облегчают поиск и правку, экономят драгоценное время.

Share this post


Link to post
Share on other sites

Для этого надо внести изменения в:

1. classes/Address.php (отвечает за проверку данных формы на стороне сервера).

Строка 80:

protected	$fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city');

 

Можете добавить в перечисление 'phone', я еще и убрал 'postcode'.

2. Внести правки в соответствующие tpl-файлы.

 

 

В PrestaShop™ 1.4.7.3 этот метод уже не помогает, для удаления обязательных полей.

Так вот. Убираем поле телефона на странице оформления товара:

1. Идем в controllers/AuthControler.php

 

2. Удаляем там

if (!Tools::getValue('phone') AND !Tools::getValue('phone_mobile'))

$this->errors[] = Tools::displayError('You must register at least one phone number');

Share this post


Link to post
Share on other sites

Я тоже изменил обязательные переменные при регистрации. В tpl сделал соответствующие изменения, но напротив телефонных номеров (которые я сделал обязательными) стоят звездочки не красного цвета, а почему-то серого. Почему так? В коде вроде нет, чтобы звездочки напротив имени и в других местах были именно красного цвета. Или я ошибаюсь?

Я просто вручную прописал стиль с красным цветом! <sup style="color: RED;">*</sup>.

Я так пологаю что поля телефона заключены в тег <p class="text"> а для него просто не прописан стиль для тега <sup>. Долго копать не стал, вручную все исправил.

Share this post


Link to post
Share on other sites

Здравствуйте, вопрос по поводу PrestaShop 1.4.9, а именно по поводу покупки гостем. Заполнил все обязательные поля значением в order-opc-new-account.tpl, но сначала не скрывал, добился покупки только по номеру телефона... все хорошо! Но только делаю input'ы type="hidden" или style="display:none;" все требует ввести обязательные поля, хотя смотрел FireBug'ом value заполнены? Как заставить игнорировать видимость полей? Или есть другой способ решения этой проблемы?

Выше версии 1.4.7 Address.php уже не помогает! и там нет email, если что исправьте))

В controllers/AuthControler.php тоже по поводу email ничего не нашел... если что ткните носом)))

(перекомпиляция включена)

Share this post


Link to post
Share on other sites
Здравствуйте, вопрос по поводу PrestaShop 1.4.9, а именно по поводу покупки гостем. Заполнил все обязательные поля значением в order-opc-new-account.tpl, но сначала не скрывал, добился покупки только по номеру телефона... все хорошо! Но только делаю input'ы type="hidden" или style="display:none;" все требует ввести обязательные поля, хотя смотрел FireBug'ом value заполнены? Как заставить игнорировать видимость полей? Или есть другой способ решения этой проблемы? Выше версии 1.4.7 Address.php уже не помогает! и там нет email, если что исправьте)) В controllers/AuthControler.php тоже по поводу email ничего не нашел... если что ткните носом))) (перекомпиляция включена)

Нашел решение сам) После того как в input вставили значения применили к их родителям style=«display:none;» находим файл тема/js/order-opc.js находими Раздел RESET ERROR(S) MESSAGE(S) примерно 522 строка и в строках:

$('#opc_account_form select:visible').each(function()

$('#opc_account_form input:visible').each(function()

удаляем :visible если что то не получается стучите protas.boxСАБАКАmailru

Edited by Diverweb (see edit history)

Share this post


Link to post
Share on other sites

В файле Adress.php я оставляю только имя и фамилию

protected $fieldsRequired = array('lastname', 'firstname');

А вот в шаблоне регистрации display и type hidden - исключают параметр из участия в формировании страницы, а Страна - обязательный параметр, поэтому и ошибки прут.

В админке ставьте вашу страну по умолчанию, в файле order-opc-new-account.tpl пишите в поле страны <p class="required select" style="visibility:hidden">

тогда поля визуально нет, но оно работает.

Удачи

  • Like 1

Share this post


Link to post
Share on other sites

Подскажите, как в 1.5.4 добавить поле "Отчество" и сделать его обязательным как и Имя с Фамилией? Что для этого надо сделать?

Edited by SuSHkOo (see edit history)

Share this post


Link to post
Share on other sites

по аналогии смотри Authcontroller + класс customer и address

Подскажите, как в 1.5.4 добавить поле "Отчество" и сделать его обязательным как и Имя с Фамилией? Что для этого надо сделать?

Share this post


Link to post
Share on other sites

 

А с добавлением... Общая рекомендация -- вообще, разрешить оформление покупки без регистрации (для этого есть и специальная настройка в админке). Регистрация же вообще, а тем более -- усложнённая, это то, на что покупатель идёт, что называется, стиснув зубы. Подумайте над этим моментом!

Прокомментирую, хоть это и было давно написано.

 

Это - абсолютно правильные слова!

Сравните с оффлайн-магазином - никто не просит на кассе перед покупкой рассказать о себе массу инфы, правильно заполнить капчу, дождаться ответного имейла/звонка и только потом передать деньги. На кассе в оффлайне волнует только один вопрос - не спер ли что-то покупатель расплатитесь ли вы.

 

Вот мне кажется, так и должно быть с онлайн-шопом - если хочешь - регистрируйся (и получишь такие-то допсервисы), но если нет - да пожалуйста! - выбирай товар и плати.

 

(А кому не хватает для счастья кучи регданных - может взять на почте "золотые страницы" ;))

Share this post


Link to post
Share on other sites

Прокомментирую, хоть это и было давно написано.

 

Это - абсолютно правильные слова!

Сравните с оффлайн-магазином - никто не просит на кассе перед покупкой рассказать о себе массу инфы, правильно заполнить капчу, дождаться ответного имейла/звонка и только потом передать деньги. На кассе в оффлайне волнует только один вопрос - не спер ли что-то покупатель расплатитесь ли вы.

 

Вот мне кажется, так и должно быть с онлайн-шопом - если хочешь - регистрируйся (и получишь такие-то допсервисы), но если нет - да пожалуйста! - выбирай товар и плати.

 

(А кому не хватает для счастья кучи регданных - может взять на почте "золотые страницы" ;))

Поддерживаю! Сам бьюсь над этим вопросом особенно виртуальный товар! Там вообще в принципе нечего заполнять заплатил-забрал! Но вот вопрос к кому с этим обращаться и где копать если некому обратится? 

Share this post


Link to post
Share on other sites

Ставь One Page Checkout for PS там есть такая фича, поищи на нулледе версию

Share this post


Link to post
Share on other sites

Поддерживаю! Сам бьюсь над этим вопросом особенно виртуальный товар! Там вообще в принципе нечего заполнять заплатил-забрал! Но вот вопрос к кому с этим обращаться и где копать если некому обратится? 

http://www.prestashop.com/forums/topic/284278-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7-%D0%BD%D0%B0-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5/?do=findComment&comment=1431857

Share this post


Link to post
Share on other sites

Для Prestashop 1.7.5.1 не нашел в инете решения, чтобы сделать поле телефона обязательным.

Решение такое

1. копируем classes/form/CustomerAddressFormatter.php в override/classes/form/CustomerAddressFormatter.php

Ищем там строчку. 

} elseif ($field === 'phone') {

после нее вставляем

$formField->setRequired(true);

 

2. копируем classes/Address.php в override/classes/Address.php

меняем строку

'phone' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32),

на 

'phone' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'required' => true, 'size' => 32),

 

Шаблоны в этой версии генерируются на лету, на фронте поле станет обязательным для заполнения.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More