В современной разработке сайтов на WordPress часто возникает задача создания удобных форм регистрации, которые автоматически подставляют данные пользователя для ускорения процесса и повышения конверсии. В этой статье мы подробно разберем, как реализовать автозаполнение форм регистрации в WordPress, используя как готовые плагины, так и собственные решения с примерами кода.
Почему важна автозаполняемая форма регистрации в WordPress
Автозаполнение форм значительно улучшает пользовательский опыт, снижает количество ошибок при вводе и увеличивает вероятность успешной регистрации. Например, если пользователь уже авторизован, можно автоматически подставить его имя, email и другие данные в форму, чтобы он просто подтвердил данные, а не вводил их заново.
Кроме того, автозаполнение полезно при повторном заполнении форм после ошибок или при регистрации через социальные сети.
Плагины WordPress для автозаполнения форм регистрации
1. WPForms
WPForms — один из самых популярных плагинов для создания форм в WordPress. Он поддерживает автозаполнение полей при помощи функции default_value, а также интеграцию с пользовательскими метаданными.
Для автозаполнения имени и email текущего пользователя в форме WPForms можно использовать фильтр wpforms_field_default_value:
add_filter('wpforms_field_default_value', function($default_value, $field_id, $form_data) {
if (is_user_logged_in()) {
$user = wp_get_current_user();
if ($field_id === 1) { // ID поля имени
return $user->display_name;
}
if ($field_id === 2) { // ID поля email
return $user->user_email;
}
}
return $default_value;
}, 10, 3);
Подробнее о WPForms и его возможностях можно узнать на официальной странице WPForms на wpshop.ru.
2. User Registration — Custom Registration Form, Login and User Profile for WordPress
Этот плагин также поддерживает автозаполнение данных текущего пользователя и позволяет гибко настраивать поля.
Для автоматического заполнения полей можно использовать хуки плагина, например user_registration_form_default_value, и подставлять данные из wp_get_current_user().
Создание собственной автозаполняемой формы регистрации с нуля
Если вы хотите более гибко контролировать процесс, можно реализовать форму самостоятельно с помощью PHP и JavaScript.
Шаг 1. Создаём шорткод для формы
function wpfinder_custom_registration_form() {
if (is_user_logged_in()) {
$user = wp_get_current_user();
$name = esc_attr($user->display_name);
$email = esc_attr($user->user_email);
} else {
$name = '';
$email = '';
}
ob_start();
?>
<form method="post" action="">
<p>
<label for="wpfinder_name">Имя:</label>
<input type="text" id="wpfinder_name" name="wpfinder_name" value="<?php echo $name; ?>" required>
</p>
<p>
<label for="wpfinder_email">Email:</label>
<input type="email" id="wpfinder_email" name="wpfinder_email" value="<?php echo $email; ?>" required>
</p>
<p>
<label for="wpfinder_password">Пароль:</label>
<input type="password" id="wpfinder_password" name="wpfinder_password" required>
</p>
<p><input type="submit" name="wpfinder_register" value="Зарегистрироваться"></p>
</form>
<?php
return ob_get_clean();
}
add_shortcode('wpfinder_registration_form', 'wpfinder_custom_registration_form');
Этот код создаёт форму с автозаполнением имени и email, если пользователь авторизован.
Шаг 2. Обработка данных формы
function wpfinder_handle_registration() {
if (isset($_POST['wpfinder_register'])) {
$name = sanitize_text_field($_POST['wpfinder_name']);
$email = sanitize_email($_POST['wpfinder_email']);
$password = $_POST['wpfinder_password'];
if (!is_email($email)) {
echo '<p style="color:red;">Некорректный email.</p>';
return;
}
if (username_exists($name) || email_exists($email)) {
echo '<p style="color:red;">Пользователь с таким именем или email уже существует.</p>';
return;
}
$user_id = wp_create_user($name, $password, $email);
if (!is_wp_error($user_id)) {
wp_update_user(['ID' => $user_id, 'display_name' => $name]);
echo '<p style="color:green;">Регистрация прошла успешно.</p>';
} else {
echo '<p style="color:red;">Произошла ошибка при регистрации.</p>';
}
}
}
add_action('wp_head', 'wpfinder_handle_registration');
Этот код обрабатывает POST-запросы с формы и создаёт нового пользователя.
Автоматическое заполнение дополнительных полей и улучшение UX
Можно улучшить UX, подставляя дополнительные данные, например, телефон, адрес или дату рождения. Для этого расширьте форму и добавьте пользовательские метаданные (user meta) при регистрации.
Для примера, добавим поле "Телефон" и сохраним его в user meta:
// В форме добавляем поле
<p>
<label for="wpfinder_phone">Телефон:</label>
<input type="text" id="wpfinder_phone" name="wpfinder_phone" value="">
</p>
// В обработке формы добавляем сохранение
if (isset($_POST['wpfinder_phone'])) {
update_user_meta($user_id, 'phone', sanitize_text_field($_POST['wpfinder_phone']));
}
Также можно добавлять JavaScript для динамического изменения формы и автофокусировки на пустых полях.
Использование плагина Clearfy Pro для автоочистки и оптимизации форм
Плагин Clearfy Pro позволяет отключать ненужные скрипты и улучшить производительность форм, включая автоочистку полей и защиту от спама. Его можно интегрировать с формами регистрации для оптимизации загрузки и безопасности.
Выводы и рекомендации
Автозаполняемая форма регистрации в WordPress — эффективный инструмент для улучшения UX и увеличения числа успешных регистраций. Используйте готовые плагины с фильтрами, если хотите быстро получить результат, или пишите собственные решения для гибкости. Не забывайте о безопасности, валидации данных и удобстве пользователя.