Создаем кастомную форму регистрации пользователей на WordPress

Создаем кастомную форму регистрации пользователей на WordPress

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

| Скачать готовый плагин формы |

Из сегодняшнего руководства вы узнаете, как создать регистрационную форму на WordPress с помощью комбинации тегов шаблонов и шорткодов.

Стандартная регистрационная форма состоит только из двух полей – имени пользователя и e-mail.

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

А можно немного изменить вышеупомянутый процесс регистрации на вашем сайте и использовать дополнительные поля вместе с двумя уже имеющимися. Это может быть поле для пароля, URL-адрес сайта пользователя, любая личная информация, никнейм, фамилия и имя.

И сегодня мы будем создавать WordPress-плагин для кастомной регистрационной формы с использованием следующих полей:

  • имя пользователя
  • пароль
  • e-mail
  • URL-адрес сайта
  • имя
  • фамилия
  • никнейм
  • личная информация

Пользовательская регистрационная форма может быть интегрирована на WordPress с помощью шорткода плагина и соответствующего тега шаблона.

Шорткод позволяет создать страницу и сделать ее главной регистрационной страницей вашего сайта. Также можно использовать шорткод в посте, чтоб пользователь смог подписаться на обновления вашего сайта после прочтения одной из понравившихся статей.

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

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

Мы будем соблюдать это правило при создании функции проверки.

Создание плагина

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

Затем создаем функцию PHP, которая содержит HTML-код регистрационной формы.

Вы обратили внимание, что в этой функции регистрационное поле было добавлено в качестве переменной?

В функции вы увидите примеры следующего кода:

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

Заполненные поля в регистрационной форме должны быть проверены. Для этого мы создадим функцию проверки под названием registration_validation .

Чтобы облегчить процесс проверки, мы используем класс WordPress WP_Error .

Далее следуйте этим шагам:

  1. Создаем функцию и передаем поле регистрации в качестве аргумента функции.
  1. Используем класс WP_Error и делаем переменную глобальной, чтоб она могла служить в качестве доступа за рамками функции.
  1. Помните, выше мы говорили о том, что нам нужны имя пользователя, пароль и e-mail, и что их нельзя упускать? Так вот, к этому правилу мы еще добавим проверку всех этих полей, являются ли они пустыми. Если они не заполнены, то мы добавляем сообщение об ошибке в глобальный класс WP_Error .
  1. Проверяем количество символов в имени пользователя. Оно должно состоят не менее чем из 4-х символов.
  1. Проверяем, существует ли уже такой пользователь с введенным именем в системе.
  1. Используем функцию WordPress validate_username , чтоб убедиться, что имя пользователя является допустимым.
  1. Проверяем, что введенный пользователем пароль состоит не менее чем из 5-ти символов.
  1. Проверяем, правильно ли введен e-mail.
  1. Проверяем, что введенный e-mail еще не был зарегистрирован ранее.
  1. Если введен адрес сайта, проверяем, что он действителен.
  1. И наконец, с помощью цикла проверяем на наличие ошибок пример WP_Error и отображаем отдельно каждую из них, если таковые имеются.

Вот и все! На этом код функции закончен.

complete_registration()

Далее нам нужна функция плагина complete_registration() , которая отвечает за обработку регистрации пользователей.

А сама регистрация пользователей, на самом деле, осуществляется с помощью функции wp_insert_user , которая принимает ряд пользовательских данных.

В вышеупомянутой функции complete_registration() мы создали пример $reg_errors WP_Error и поля формы переменной, так что у нас есть доступ к переменной в глобальном масштабе.

Затем проверяем, что переменная $reg_errors , которая обрабатывает пример, не содержит какие-либо ошибки. Если никакой ошибки не обнаружено, переходим к заполнению $userdata , вставляем данные пользователя в базу данных WordPress и отображаем сообщение « Регистрация прошла успешно » со ссылкой на страницу входа в систему.

custom_registration_function()

На очереди у нас отличная функция custom_registration_function() , которая активирует все созданные нами функции.

Теперь объясним код в функции custom_registration_function() .

Сначала мы определяем, что форма была отправлена, проверив, что установлена $_POST['submit'] . Если да, то используем функцию registration_validation для проверки отправленной пользователем формы. Затем проверяем данные формы и вставляем в переменную с тем же именем, что и поле формы. И наконец, с помощью complete_registration регистрируем пользователя.

А функция registration_form отображает регистрационную форму.

Шорткод

Помните, мы говорили, что будем предоставлять поддержку шорткода для плагина регистрации? Ниже приведен соответствующий код для шорткода:

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

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

Использование плагина

Чтоб добавить плагин к посту или на страницу WordPress, используйте шорткод [cr_custom_registration] .

Для добавления регистрационной формы в определенном месте сайта в используемой вами теме, добавьте следующий тег шаблона:

Готовый файл плагина можно получить по ссылке в начале поста.

Заключение

В сегодняшнем посте мы рассмотрели процесс создания плагина, с помощью которого добавляется кастомная регистрационная форма на сайте WordPress. На основе предоставленной информации можно расширить количество полей для заполнения, но только убедившись, что поля формы являются действительными мета-данными для wp_insert_user .

📎📎📎📎📎📎📎📎📎📎