В стандартной установке WordPress после регистрации пользователь попадает на страницу авторизации или другую дефолтную страницу, что не всегда удобно для владельцев сайтов. Часто хочется направить пользователя сразу на определённую страницу — например, приветственную, с инструкциями, или на страницу личного кабинета.
Почему важен автоматический редирект после регистрации
Автоматический редирект улучшает пользовательский опыт и повышает конверсию, поскольку не заставляет зарегистрированного пользователя искать, что делать дальше. Это особенно актуально для сайтов с платным доступом, курсами, сообществами и интернет-магазинами.
Кроме того, правильная маршрутизация после регистрации помогает лучше контролировать поток посетителей и снижает нагрузку на службу поддержки, так как пользователи сразу видят нужную информацию.
Способы реализации автоматического редиректа после регистрации
Существует несколько подходов к решению задачи, от установки готовых плагинов до написания собственного кода. Рассмотрим оба варианта.
Использование плагинов для редиректа после регистрации
Самые популярные плагины с функцией управления редиректами после регистрации:
- Peter’s Login Redirect — позволяет настроить перенаправления после логина, выхода и регистрации по ролям и пользователям.
- Theme My Login — комплексное решение для кастомизации страниц регистрации и входа, с возможностью задать редиректы.
- WPForms — если регистрация сделана через формы WPForms, в настройках есть удобный функционал для редиректа после успешной отправки формы.
Для сайта с доменом wporg.ru рекомендуем обратить внимание на Peter’s Login Redirect — простой и эффективный инструмент.
Создание собственного решения с помощью кода
Если хочется точечно контролировать поведение сайта и избежать лишних плагинов, можно добавить в файл functions.php темы или в собственный плагин следующий код.
function wporg_redirect_after_registration( $user_id ) {
// Получаем объект пользователя
$user = get_userdata( $user_id );
// Задаём URL для редиректа, например, страница "Добро пожаловать"
$redirect_url = home_url( '/welcome/' );
// Сохраняем URL в сессию для последующего редиректа после входа
// так как сразу после регистрации происходит редирект на страницу входа
if ( ! session_id() ) {
session_start();
}
$_SESSION['wporg_redirect_after_login'] = $redirect_url;
}
add_action( 'user_register', 'wporg_redirect_after_registration' );
function wporg_redirect_after_login( $redirect_to, $requested_redirect_to, $user ) {
if ( ! session_id() ) {
session_start();
}
if ( isset( $_SESSION['wporg_redirect_after_login'] ) ) {
$redirect_url = $_SESSION['wporg_redirect_after_login'];
unset( $_SESSION['wporg_redirect_after_login'] );
return $redirect_url;
}
return $redirect_to;
}
add_filter( 'login_redirect', 'wporg_redirect_after_login', 10, 3 );
Этот код решает типичную проблему: после регистрации пользователь автоматически переходит на страницу входа, а не на нужную нам. Мы используем сессию, чтобы сохранить URL редиректа и применить его после успешного входа.
Настройка редиректа по ролям пользователей
Иногда нужно перенаправлять пользователей в зависимости от их роли. Например, администраторы идут в админ-панель, а подписчики — на главную страницу.
Вот пример, который расширяет предыдущий код:
function wporg_redirect_after_login_by_role( $redirect_to, $requested_redirect_to, $user ) {
if ( ! $user || is_wp_error( $user ) ) {
return $redirect_to;
}
if ( in_array( 'administrator', (array) $user->roles ) ) {
return admin_url();
} elseif ( in_array( 'subscriber', (array) $user->roles ) ) {
return home_url( '/welcome/' );
} else {
return $redirect_to;
}
}
add_filter( 'login_redirect', 'wporg_redirect_after_login_by_role', 10, 3 );
Такой подход позволяет гибко управлять навигацией сайта после входа.
Рекомендации по тестированию и отладке
После внедрения редиректов важно проверить разные сценарии:
- Регистрация нового пользователя
- Вход пользователя с разными ролями
- Поведение при ошибках регистрации и входа
Для отладки используйте инструменты браузера (Network, Console) и логи сервера. Если редиректы не срабатывают, проверьте конфликт плагинов и правильность URL.
Заключение
Автоматический редирект после регистрации — важный элемент улучшения UX на сайте WordPress. Выбор способа зависит от задач и навыков: плагин даст быстрое решение, собственный код — гибкость и контроль. Мы рассмотрели оба варианта, а также как настроить редиректы по ролям.
Для расширенных возможностей и оптимизации рекомендуем посмотреть Peter’s Login Redirect на wpshop.ru.