Как сделать автоматический редирект после регистрации в WordPress

В стандартной установке 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.

Скачать WP с оф. сайта Магазин проверенных платных тем