Редирект пользователей после входа в WordPress — полезная функция для проектов с различными типами пользователей. В этой статье показано, как реализовать такой редирект на основе роли через Bricks Builder без использования сторонних плагинов.
Зачем нужен редирект по ролям?
Редирект позволяет направлять пользователей на разные страницы сразу после входа. Это удобно, когда:
- Админы должны попадать в консоль;
- Редакторы — в редакторскую панель;
- Клиенты — на страницу заказов;
- Подписчики — в обучающий раздел.
Такой подход повышает удобство и делает интерфейс логичным для разных ролей.
Что такое Bricks Builder и зачем он нужен?
Bricks — визуальный конструктор тем для WordPress с поддержкой кастомных PHP-действий. Он позволяет добавлять пользовательскую логику в формы — например, проверку логина, выбор роли и динамический редирект.
Как это работает
Bricks позволяет выполнить PHP-функцию при отправке формы. Это позволяет:
- Получить логин пользователя;
- Определить его WordPress-роль;
- Направить его на нужную страницу.
Пример кода редиректа по ролям
Добавьте следующий код в functions.php
темы или в раздел Bricks → Settings → Custom Code:
add_action('bricks/form/custom_action', function( $form ) { // Указываем ID формы логина $validFormIds = ['your-form-id']; // ← Замените на ID вашей формы $formId = $form->get_fields()['formId'] ?? ''; if ( ! in_array( $formId, $validFormIds ) ) return; // Получаем логин (email или username) $login = $form->get_fields()['form-field-login'] ?? ''; // ← Замените на ID поля логина if ( ! $login ) return; // Определяем пользователя $user = filter_var( $login, FILTER_VALIDATE_EMAIL ) ? get_user_by('email', $login) : get_user_by('login', $login); if ( ! $user ) return; // Получаем роли $roles = (array) $user->roles; // Задаём маршруты редиректа для ролей $role_redirects = [ 'administrator' => '/dashboard/', 'editor' => '/editor-panel/', 'subscriber' => '/welcome/', ]; // Формируем адрес редиректа $base = get_home_url(); $redirectTo = $base . ($role_redirects[$roles[0]] ?? '/'); // Выполняем редирект $form->set_result([ 'type' => 'redirect', 'redirectTo' => $redirectTo, 'redirectTimeout'=> 0 ]); }, 10);
Что нужно заменить в коде
your-form-id
— ID формы, см. в настройках формы Bricks;form-field-login
— ID поля логина (email или username);$role_redirects
— список ролей и маршрутов для редиректа.
Варианты применения
- Образовательные платформы: преподаватели и ученики идут на разные дашборды;
- Корпоративные сайты: сотрудники и админы получают разный интерфейс;
- SaaS-сервисы: клиенты и поддержка работают в отдельных разделах.
Полезные советы
- Проверьте, что у всех пользователей установлены корректные роли;
- Добавьте fallback-редирект для неизвестных ролей;
- Используйте HTTPS-ссылки в продакшене.
📌 Заключение
Редирект после логина по ролям в Bricks Builder помогает создать персонализированный интерфейс без лишних плагинов. Достаточно подключить кастомную функцию и задать нужные маршруты — подход масштабируется под любой тип проекта.