Безвкусный users register. Плагин формы входа и регистрации (User Registration)

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

Хук получает в качестве параметра ID пользователя.

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

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

Для добавления или обновления метаданных пользователя, также можно использовать хук insert_user_meta . См. пример ниже или код функции wp_insert_user()

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

add_action("user_register", "____action_function_name"); function ____action_function_name($user_id) { // Действие... } $user_id(число) ID зарегистрированного пользователя.

Примеры

#1 Добавим дополнительные данные пользователя при регистрации

Этот пример показывает как добавить значение поля user_sex , которое передается в $_POST данных из формы регистрации.

Имейте ввиду, что проверка обновляемых данных не должна производиться в момент этого хука - уже слишком поздно, пользователь уже добавлен! Проверку данных нужно делать во время хука registration_errors , хук user_register не сработает если проверка не будет пройдена...

// предварительная проверка поля add_filter("registration_errors", "my_validate_user_data"); function my_validate_user_data($errors){ if(empty($_POST["user_sex"])) $errors->add("empty_user_sex", "Пол обязательно должен быть указан!"); elseif(! in_array($_POST["user_sex"], array("male","female"))) $errors->add("invalid_user_sex", "Пол указан неверно!"); return $errors; } // обновление метаданных пользователя add_action("user_register", "my_user_registration"); function my_user_registration($user_id) { // $_POST["user_sex"] проверена заранее... update_user_meta($user_id, "user_sex", $_POST["user_sex"]); }

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

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

Этот пример полностью заменяет хук user_register из предыдущего примера. Проверку на ошибки берем из пред. примера.

// $meta = apply_filters("insert_user_meta", $meta, $user, $update); add_filter("insert_user_meta", "my_user_registration_meta", 10, 3); function my_user_registration_meta($meta, $user, $update) { // выходим если это не регистрация юзера if($update) return $meta; $meta["user_sex"] = $_POST["user_sex"]; // $_POST["user_sex"] проверена заранее... return $meta; }

Список изменений

С версии 1.5.0 Введена.

Где вызывается хук

Где используется хук (в ядре WP)

wp-admin/includes/admin-filters.php 92 add_action("user_register", array("WP_Internal_Pointers", "dismiss_pointers_for_new_users"));

Здравствуйте! Сейчас мы попробуем реализовать самую простую регистрацию на сайте с помощью PHP + MySQL. Для этого на вашем компьютере должен быть установлен Apache. Принцип работы нашего скрипта изображен ниже.

1. Начнем с создания таблички users в базе . Она будет содержать данные пользователя (логин и пароль). Зайдем в phpmyadmin (если вы создаете базу на своем ПК http://localhost/phpmyadmin/ ). Создаем таблицу users , в ней будет 3 поля.

Я создаю ее в базе mysql, вы можете создавать в другой базе. Далее устанавливаем значения, как на рисунке:

2. Необходимо соединение с этой таблицей. Давайте создадим файл bd.php . Его содержание:

$db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу");
mysql_select_db ("имя базы, к которой подключаемся",$db);
?>

В моем случае это выглядит так:

$db = mysql_connect ("localhost","user","1234");
mysql_select_db ("mysql",$db);
?>

Сохраняем bd.php .
Отлично! У нас есть таблица в базе, соединение к ней. Теперь можно приступать к созданию странички, на которой пользователи будут оставлять свои данные.

3. Создаем файл reg.php с содержанием (все комментарии внутри):



Регистрация


Регистрация
















4. Создаем файл , который будет заносить данные в базу и сохранять пользователя. save_user.php (комментарии внутри):



{
}
//если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести


//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// подключаемся к базе
// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
if (!empty($myrow["id"])) {
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}
// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO users (login,password) VALUES("$login","$password")");
// Проверяем, есть ли ошибки
if ($result2=="TRUE")
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. Главная страница";
}
else {
echo "Ошибка! Вы не зарегистрированы.";
}
?>

5. Теперь наши пользователи могут регистрироваться! Далее необходимо сделать "дверь" для входа на сайт уже зарегистрированным пользователям. index.php (комментарии внутри) :

// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();
?>


Главная страница


Главная страница











Зарегистрироваться



// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION["login"]) or empty($_SESSION["id"]))
{
// Если пусты, то мы не выводим ссылку
echo "Вы вошли на сайт, как гость
Эта ссылка доступна только зарегистрированным пользователям";
}
else
{

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

6. Остался файл с проверкой введенного логина и пароля. testreg.php (комментарии внутри):

session_start();// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
if (isset($_POST["login"])) { $login = $_POST["login"]; if ($login == "") { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST["password"])) { $password=$_POST["password"]; if ($password =="") { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// подключаемся к базе
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

$result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result);
if (empty($myrow["password"]))
{
//если пользователя с введенным логином не существует
}
else {
//если существует, то сверяем пароли
if ($myrow["password"]==$password) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно вошли на сайт! Главная страница";
}
else {
//если пароли не сошлись

Exit ("Извините, введённый вами login или пароль неверный.");
}
}
?>

Ну вот и все! Может урок и скучный, но очень полезный. Здесь показана только идея регистрации, далее Вы можете усовершенствовать ее: добавить защиту, оформление, поля с данными, загрузку аватаров, выход из аккаунта (для этого просто уничтожить переменные из сессии функцией unset ) и так далее. Удачи!

Все проверил, работает исправно!

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

Основные преимущества плагина:

  • Легкое построение форм с помощью перетаскивания элементов;
  • Неограниченное количество полей и создаваемых форм;
  • Приятный и простой внешний вид;
  • Возможность расположить поля в колонки;
  • Шорткод для вставки форм;
  • Поддержка recaptcha, email-оповещения, готов к переводу и пр.

Ну что, посмотрим, что из себя представляет.

После установки и активации, плагин предлагает создать необходимые страницы регистрации и аккаунта. Этот процесс можно пропустить, и создать нужные страницы позже самому. Всё-таки, чтобы не лезть в документацию, лучше установить эти демо образцы и поправить по своему желанию.

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

На странице глобальных настроек 3 вкладки: общие настройки, интеграция с recaptcha, и редактирование емайл сообщений.

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

После установки плагин создает демо форму и подключает её на новую созданную страницу регистрации. Вот как выглядит редактор формы.

Действительно, все поля перетаскиваются. При клике на поле открывается окно настроек, в котором можно задать метку, заполнитель, сделать обязательным, некоторым полям можно задать класс (но почему-то не всем).

Теперь из минусов.

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

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

Пишите ваши мнения, если пользовались данным плагином User Registrations или собираетесь использовать.

User Registration plugin provides you with an easy way to create frontend user registration form and login form. Drag and Drop fields make ordering and creating forms extremely easy. The plugin is lightweight, extendible, and can be used to create any type of registration form.

Beside registration form, the plugin also supports beautiful frontend profile account page for profile edit, password change, Log out and more. Users can visit their account page after registration and view the details they have filled and can make changes if necessary.

The registration forms are 100% mobile responsive and optimized to display on any devices.

User Registration Plugin in action:

Features And Options:

  • Simple, Clean and Beautiful WordPress Registration Forms
  • Drag and Drop Fields
  • Unlimited Registration Forms
  • Inbuilt Login Form
  • Frontend Profile account page
  • Multiple Column Design
  • Multiple Form template designs
  • Shortcode Support
  • Google reCaptcha Support (v2 and v3)
  • Email notifications
  • Email Customizers
  • Form Duplicate Option
  • Admin approval option for registration
  • Auto login option
  • Email confirmation to register
  • Enable/Disable Strong Password
  • Default User Role Selection Option
  • Support for profile image upload
  • Form Preview Option on backend
  • User data export in CSV
  • Import/Export registration form
  • Well Documented
  • Translation ready

Premium Addons

User Registration can be easily extended with some premium addons.

  • Contributors & Developers

    “User Registration – Custom Registration Form, Login And User Profile For WordPress” is open source software. The following people have contributed to this plugin.

    Contributors

    Changelog

    1.7.6 – 30/12/2019

    • Enhancement – Registered user source.
    • Tweak – Remove inline css from recaptcha.
    • Fix – Email attachment hook mismatch arguments.
    • Fix – wp_authenticate_user filter mismatch arguments.
    • Fix – Hide/show password enabled in edit profile.

    1.7.5 – 13/12/2019

    • Enhancement – Redirect URL after logout.
    • Enhancement – Password field eye icon.
    • Fix – Escaping attribute in checkbox field.
    • Fix – Remove admin notice from form builder.
    • Fix – Case sensitive in confirm password.
    • Fix – Invite code field name made non editable.

    1.7.4 – 21/11/2019

    • Feature – WPML Plugin Compatibility.
    • Tweak – Country Field Default Value.
    • Tweak – Icons alignment to support WordPress v5.3.
    • Fix – HTML field Form Duplication.

    1.7.3 – 04/10/2019

    • Fix – Form ID being empty.
    • Fix – Form ID check.
    • Fix – Field key not found in edit profile details.

    1.7.2 – 02/10/2019

    • Refactor – Has date field function.
    • Refactor – Check username function.
    • Tweak – Button spinner.
    • Fix – Exclude file upload field from export users.
    • Fix – Remove the Password field from excluding.
    • Fix – Exclude Confirm Email field from edit profile.
    • Fix – Undefined error on label hidden.
    • Fix – Grid toggle text.
    • Fix – Email address vaidation.
    • Fix – Heartbeat start on Document ready.
    • Add – Styles for table caption.
    • Dev – Introducing get_form function.

    1.7.1 – 13/09/2019

    • Fix – Password Validation Message.
    • Fix – Password strength error message translation issue.
    • Fix – Smart Tag issue while sending the email.
    • Fix – Double click on form submit button.
    • Fix – Submit button hidden in IE.
    • Fix – Blink on the grid hover.

    1.7.0 – 05/09/2019

    • Feature – Live new user registration notice and badge.
    • Feature – Import/Export registration form in JSON format.
    • Feature – Shortcut to save form (Ctrl + s).
    • Tweak – Form name edit position change.
    • Tweak – UI enhancement for full-screen mode.
    • Tweak – Input field box design on the builder.
    • Tweak – Brand logo add in the builder.
    • Tweak – Header design enhancement on the builder.
    • Tweak – Remove footer save button.
    • Tweak – Remove builder reload on save.
    • Tweak – Form builder pre-loader.
    • Tweak – Setting tab design.
    • Tweak – Form fields design.
    • Tweak – Overall form builder design
    • Tweak – Add row button color adjustment.
    • Tweak – Field description placement below the input in front-end.
    • Tweak – Success and Error messages.
    • Tweak – Fields Icon change.
    • Tweak – SweetAlert2 confirmation and alert box.
    • Fix – Manage draggable user fields on row delete.
    • Add – Perfect Scrollbar in the builder.
    • Add – New Smarttag ({{ur_login}}).
    • Dev – Action hook in form builder footer wrapper.
    • Dev – Action hook after form save.
    • Dev – Filter hooks before and after form fields.
    • Dev – Filter before and after field row.
    • Dev – Add and Delete row JS events.
    • Dev – Color picker field in form setting.
    • Dev – Bool to string and vise Versa formatting add.

    1.6.3 – 19/08/2019

    • Enhancement – Send Email to Admin when user changes their profile details.
    • Feature – Fullscreen builder mode.
    • Tweak – Template file update to locate add-ons file
    • Add – Accept redirect_to get parameter in login page.
    • Fix – Password strength error message not showing.
    • Fix – Profile picture in my account dashboard.
    • Fix – Profile picture save without selecting any file.
    • Fix – Prevent empty search query.
    • Fix – Email format issue.
    • Dev – Hook to filter form data in profile details.

    1.6.2 – 09/07/2019

    • Enhancement – Profile picture upload to browser upload.
    • Tweak – Enqueue scripts.
    • Fix – Menu Items invalid arguments.
    • Fix – Log delete on reload.

    1.6.1 – 04/06/2019

    • Feature – Two Column Login and Registration Form.
    • Tweak – Secondary button design.
    • Tweak – Button status on hover, foucs and active.
    • Fix – Remove escaping in redirect url.
    • Fix – Lost Password Email from header.
    • Fix – json_decode error on user profile.
    • Fix – Admin can register user.
    • Fix – UI Dragging.
    • Fix – Field option selection in builder after field deleted.
    • Fix – Sub menu UI.

    1.6.0.1 – 08/05/2019

    • Fix – Form wise redirection

    1.6.0 – 07/05/2019

    • Feature – Form Wise Redirection.
    • Feature – Added Number field’s Min, Max & Step attribute option along with Custom CSS option.
    • Tweak – Introducing new User Registration Brand Logo change.
    • Tweak – Gravatar message in Edit Profile page hide when selected Custom Picture.
    • Tweak – On Prevent Core Login option enabled redirect Administrator to Dashboard.
    • Tweak – Setting page’s sub-menu design change.
    • Tweak – Edit profile in My Account page field structure.
    • Tweak – My Account page design change.
    • Tweak – Conditional Logic Option design change in Field option.
    • Add – Form Preview Button.
    • Add – Hide and Show Password button in Login page.
    • Add – Introducing Email Confirmation field.
    • Fix – Undefined index found_avatar in Gravatar.
    • Fix – Registration form submission Undefined error.
    • Fix – KeepAlive issue in Copy Shortcode button.
    • Fix – Lost Password Endpoint conflict.
    • Fix – Max Length for input field.

    1.5.10 – 04/05/2019

    • Feature – Prevent Core Login and Registration page.
    • Feature – Custom css fields for default fields.
    • Fix – Prevent Dashboard access issue for multiple user roles.
    • Fix – Target blank in anchor tag issue.
    • Dev – Filter hook to modify form fields.
    • Dev – Filter hook to be used in new setting type.
    • Tweak – Bypass validation for read-only fields.

    1.5.9 – 03/28/2019

    • Fix – Profile picture not displaying in My account page.
    • Tweak – Dashboard Widget data fetch through Ajax request.
    • Dev – Filter hook added to hide current password in edit profile page.
    • Dev – Filter hook added to bypass current password validation and check in form handler.

    1.5.8.1 – 03/04/2019

    • Fix – Update user meta profile_pic_id and prefix change on review notice

    1.5.8 – 02/26/2019

    • Feature – Custom profile picture upload on account profile and admin profile.
    • Feature – Dashboard widget for users activity.
    • Feature – Default value for country field.
    • Feature – Option to delete user registration data on plugin deletion.
    • Feature – Password strength meter on lost password and change password form.
    • Add – Admin notice to leave review on wp.org
    • Add – Scroll to error message due to minimum password strength.
    • Remove – Caching prevention after header sent. Should’ve been as earlier as wp hook.
    • Fix – Minimum password strength bug

    1.5.7 – 02/05/2018

    • Refactor – Options for select, checkbox and radio field.
    • Add – Placeholder for select and country field.
    • Add – Cache helper class for flushing cache on user registration form.
    • Fix – Confirmaction of export/erase personal data from custom login form.
    • Fix – Privacy policy made required by default.
    • Fix – Formatting of form title display.
    • Fix – Validate for same email as password.
    • Dev – Action hook for enqueuing scripts.

    1.5.6 – 11/01/2018

    • Fix – Authenticated XSS. Thanks wpvulndb.com for nofifying.
    • Fix – Smart tag bug on resend confirmation email

    1.5.5 – 08/01/2018

    • Feature – Google reCaptcha v3 support
    • Fix – Data display for input fields on users profile
    • Tweak – Disable input fields on builder panel
    • Tweak – Beautify accordion on fields section

    1.5.4 – 02/01/2018

    • Fix – Smart tag for reset password email
    • Fix – Date field in user profile
    • Tweak – Message for lost password while awaiting admin approval
    • Dev – Filter to override success/failure response
    • Dev – Filter to override user role
    • Dev – Filter to update settings on settings page