Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

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

by
Difficulty:IntermediateLength:LongLanguages:

Russian (Pусский) translation by Yuri Yuriev (you can also view the original English article)

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

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

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

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

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

Это особенно полезно на веб-сайте со многими авторами, например Tuts +.

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

  • имя пользователя
  • пароль
  • адрес email 
  • веб-сайт URL
  • имя
  • фамилия
  • ник
  • биография (или около раздела)

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

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

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

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

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

Премиум опция

В этом учебном руководстве вы научитесь создавать плагин с нуля, но если вы ищете быстрое решение с поддержкой plug-and-play, попробуйте плагин WordPress Registration Form на Envato Market. Вы можете установить широкий диапазон полей регистрации с контролем валидации. Как только регистрация будет завершена, электронное письмо будет отправлено новому участнику с его регистрационными данными. Шаблоны электронной почты могут быть изменены для регистрации, смены пароля и т. д.

WordPress Registration Form plugin on Envato Market
WordPress Registration Form плагин на Envato Market

Другой вариант - разместить заказ на Envato Studio. Вы можете выбрать подходящего человека из широкого круга WordPress plugin developers. Затем вы отправляете заявку и разрешаете разработчику создавать ваш плагин в согласованные сроки.

Например, Alisaleem252 разработает настроенный плагин WordPress, который будет совместим с последней версией WordPress и другими плагинами в репозитории WordPress в соответствии с вашими требованиями.

Вы получите:

  • пользовательский виджет, если он нужен
  • пользовательский шорткод, если он нужен
  • пользовательский тип сообщения, если он нужен
  • надёжное обслуживание
Custom WordPress Plugin Development
Разработка пользовательского WordPress плагина

Полный сервис стоит всего 300 долларов, а ваш плагин будет готов через 10 дней. Alisaleem252 имеет рейтинг одобрения 98% от предыдущих клиентов. Так почему бы не попробовать его популярную Custom WordPress Plugin Development!

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

С учетом сказанного, давайте начнем с кодирования плагина. Во-первых, назначьте заголовок плагина.

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

Обратили внимание, что поле регистрации передаётся в качестве переменной в функцию выше? В коде функции вы увидите примеры следующего кода, например:

( isset( $_POST['lname'] ) ? $last_name : null )

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

Регистрационная форма не будет завершена, пока вы не проверите и не очистите введённые пользователем данные. В результате мы создадим функцию проверки с именем registration_validation.

Чтобы облегчить проверку, мы будем использовать класс WordPress WP_Error. Следуйте за мной, когда мы закодируем функцию проверки:

  1. Создайте функцию и передайте поле регистрации в качестве аргумента функции.
  2. Создайте экземпляр класса WP_Error и сделайте глобальную переменную экземпляра, чтобы она могла быть доступна за пределами области действия функции.
  3. Помните: мы сказали, что имя пользователя, пароль и адрес email являются обязательными и не должны быть опущены. Чтобы обеспечить соблюдение этого правила, нам нужно проверить, не пусто ли одно из полей. Если пусто, мы добавляем сообщение об ошибке в глобальный класс WP_Error.
  4. Мы также проверяем, чтобы число символов имени пользователя не было меньше 4.
  5. Проверьте, зарегистрировано ли имя пользователя.
  6. Используйте службы WordPress validate_username, чтобы убедиться, что имя пользователя действительно.
  7. Убедитесь, что пароль, введенный пользователями, не менее 5 символов.
  8. Проверьте, является ли электронное письмо действительным.
  9. Проверьте, зарегистрирован ли адрес электронной почты.
  10. Если поле веб-сайта заполнено, проверьте, действительно ли оно.
  11. Наконец, мы перебираем ошибки в нашем экземпляре WP_Error и отображаем отдельную ошибку.
    Мы закончили кодирование функции проверки.

Далее идёт функция complete_registration () плагина, которая обрабатывает регистрацию пользователя.
Регистрация пользователя фактически выполняется функцией wp_insert_user, которая принимает массив пользовательских данных.

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

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

Далее идет функция super custom_registration_function (), которая помещает все функции, которые мы создали выше, в работу.

Позвольте мне объяснить, что за код в функции custom_registration_function ().

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

Затем мы зачищаем данные формы и устанавливаем данные sanitize в переменную, названную после поля формы. Наконец, мы вызываем complete_registration для регистрации пользователя.

Нам нужно вызвать функцию registration_form, чтобы отобразить регистрационную форму.

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

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

Обратите внимание, что у вас может не получиться точно такой же внешний вид на вашем сайте WordPress в результате различия стилей CSS.

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

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

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

Резюме

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

Если у вас есть вопросы и предложения, дайте мне знать в комментариях!

Помните, что если вы изо всех сил пытались следовать этому руководству, а хотите простое решение, попробуйте плагин WordPress Registration Form на Envato Market.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.