Настройка регистрации в VirtueMart

Опубликовано: 13 Апрель, 2018
Обновлено: 14 Апрель, 2018
Категория: Настройка VirtueMart
Комментариев: 14

Без лишних предисловий переходим сразу к делу. Есть два варианта регистрации пользователей в virtuemart.

Регистрация через стандартную форму Joomla

При таком способе все пользователи будут автоматически зарегистрированы и в virtuemart, поскольку данные о пользователях virtuemart берутся из общей таблицы пользователей joomla.

Это удобно, но применяется очень редко, поскольку кроме стандартных пользовательских полей joomla в virtuemart есть дополнительные поля (например, Имя,  Адрес, Телефон и т.д.), которые также могут понадобиться при регистрации. Поле Имя (first_name) используется почти всегда, но при стандартной регистрации joomla оно останется пустым и пользователю его придется дополнительно заполнить. В итоге получается какая-то полурегистрация. Плюс к этому у пользователя может возникнуть непонимание, почему при регистрации он указывал имя (в поле Отображаемое имя), а в личном кабинете virtuemart и при заказе его нет. О причинах такого поведения чуть ниже.

В virtuemart 3.2.10 был добавлен плагин VM Framework Loader during Plugin Updates, который редиректит со стандартной формы регистрации joomla на страницу с регистрацией virtuemart. Отключите его, если не получается перейти на страницу с регистрацией joomla.

Регистрация через форму virtuemart

В virtuemart есть встроенная форма регистрации пользователей. Отобразить ее можно, создав пункт меню с типом Virtuemart > Учетная запись. Для незарегистрированных пользователей будут показаны формы авторизации и регистрации, для зарегистрированных - личный кабинет, в котором можно изменить свои данные и посмотреть все заказы.

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

Первый этап упрощения регистрации - это отключение всех ненужных полей.

На скрине видно, что все поля делятся на 2 блока - стандартные поля для регистрации  в joomla и дополнительные поля virtuemart.

При регистрации средствами joomla все данные о пользователе хранятся в таблице  _users. Virtumeart использует эти данные, плюс в таблице _virtuemart_userinfos хранятся данные из дополнительных полей самого магазина.

В Virtuemart > Настройки > Поля, заполняемые пользователями можно настроить все дополнительные поля.

На странице регистрации показываются поля, у которых в настройках активна опция Показать в учетной записи.

Отключим все лишние поля и в списке всех полей зададим правильный порядок следования.

Отключив все лишние поля и оставив только поле с именем покупателя (first_name), мы получим уже более приятную форму.

Имя пользователя и Отображаемое имя - поля для стандартной регистрации joomla, при их отключении зарегистрироваться не получится.

Имя - единственное дополнительное поле от virtuemart.

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

Настройки регистрации пользователей находятся в Пользователи > Менеджер пользователей > Настройки.

Разрешить регистрацию пользователей - опция обязательно должна быть активна.

Группа для регистрирующихся пользователей - относится к группам пользователей joomla, в virtuemart можно присвоить собственные группы в Virtuemart > Заказы и покупатели.

Отсылать пароль - при включении этой опции пароль будет отсылаться в письме. Если в форме регистрации поля с паролем отключены, то он генерируется автоматически, поэтому эту опцию обязательно нужно включить, чтобы пользователь мог увидеть сгенерированный пароль.

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

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

Но на мой взгляд, поле с паролем нужно оставить, чтобы в дальнейшем пользователь смог его при необходимости изменить в личном кабинете. Для удобства можно убрать поле для подтверждения, но об это чуть ниже.

Теперь поля с именами. Все три поля необходимы для правильной регистрации, но в форме нужно показать только одно. Я предлагаю в поле Имя пользователя копировать данные из поля Эл. почта, а в поле Отображаемое имя автоматически копировать данные из поля Имя.

Поля будут заполняться автоматически, поэтому с помощью css их можно просто скрыть. Плюс в качестве приятного дополнения пользователи смогут авторизовываться не по логину, а по email (логин и почта будут совпадать), как это сделано на большинстве сайтов. Если на сайте уже есть зарегистрированные пользователи, то можно установить плагин Authentication - EMail, чтобы все пользователи могли авторизоваться по email.

Автозаполнение и скрытие лишних полей нужно настроить на следующих страницах:

  • регистрация
  • корзина (если выбрано оформление заказа с регистрацией)
  • профиль пользователя
  • письмо, приходящее пользователю после регистрации. Там тоже показываются все имена и лишние нужно удалить.

Для автозаполнения и скрытия всех лишних полей на сайте можно использовать плагин VM Clean Registration.

Совместимость: Joomla 3; Virtuemart 3

Скачать

После стандартной установки в Менеджере плагинов нужно активировать плагин VM Clean Registration и выбрать поля, которые нужно скрыть.

Результатом работы плагина станет вот такая форма регистрации.

Плагин бесплатный. Если он помог в работе, то можно поддержать проект.

По поводу капчи при регистрации. Если коротко, то встроенная recaptcha в форме регистрации virtuemart пока работает с ошибками. Почитать подробнее и найти альтернативу можно в этой статье.

И, наконец, переходим в последнему пункту - редактированию письма, приходящего пользователю после регистрации.

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

Отредактировать шаблон письма можно в файле /components/com_virtuemart/views/user/tmpl/mail_html_reguser.php. Удалите или закомментируйте следующие строки

и замените

на

Чтобы изменения сохранились после обновления скопируйте измененный файл в папку /templates/имя_шаблона/html/com_virtuemart/user/.

После всех правок письмо будет выглядеть так.

На этом всё. Статья получилась объемная но, я надеюсь, полезная.

14 комментариев

    N1

    ЗдОрово, всё получилось, огромное вам спасибо! Наконец-то эта регистрация с тремя полями имён в прошлом.

      admin

      admin

      Рад, что статья оказалась полезной.

    juicy

    Все отлично получилось, спасибо. Еще вопрос, подскажите может где-нибудь есть решение, чтобы на главной, если пользователь залогинился, вместо "Мой аккаунт" отображалось имя пользователя?

      admin

      admin

      Это зависит от конкретного шаблона. Если у Вас шаблон, купленный на этом сайте, то задайте вопрос на его форуме поддержки.

    Anna

    Если пользователь меняет имя в личном кабинете, то меняется только одно имя, так и должно быть?

      admin

      admin

      Да, а что еще должно меняться?

    v.korchagin.p

    Пробовал ставить плагин, работает но у меня с ним пропадает сумма доставки в корзине

      admin

      admin

      Пришлите ссылку на сайт.

    Сергей

    Второе имя, то которое теперь скрыто. В приветствии отображается именно скрытое имя, и оно остается старым.

      admin

      admin

      Странно, потестировал на своем сайте, все работает правильно. Пришлите ссылку на сайт.

    Владимир

    sportmag52.ru (я на время его включу)

      admin

      admin

      На этой странице плагин не подключен. Подключите еще раз.

    Ростислав

    Спасибо за полезную статью и плагин. У меня возник дополнительный вопрос.

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

    Гуглится только путь \administrator\components\com_virtuemart\html\checkout_register_form.php , но такой папки "html" у меня на сервере нет, видимо это было актуально для предыдущих версий VM.

    Ростислав

    Как часто бывает, задав вопрос, почти сразу разобрался сам. Путь к нужному файлу /components/com_virtuemart/views/user/tmpl/edit_shopper.php

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×