Как перенаправить пользователя после входа в WordPress - Web-Global: Связывая миры через веб-технологии

Как перенаправить пользователя после входа в WordPress

Пост опубликован 28 октября 2021 в 09:40 и находится в рубриках Wordpress. 174
Поделиться:

Зачем перенаправлять после авторизации?

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

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

Разберем детально, как это сделать на любом сайте WordPress.

Вручную с помощью PHP-кода

Этот способ сложнее. Нужно редактировать файлы темы.

Все последующие действия предполагают редактирование functions.php — основного конфигурационного файла WordPress-темы. Если вы не знаете, как редактировать этот файл, то в этом случае поможет плагин ProFunctions.

Откройте functions.php активной ВордПресс-темы на сайте и добавьте строки:

function redirect_users_after_login() {
    $user = wp_get_current_user();
    $roles = ( array ) $user->roles;
    
    // Редирект для администраторов
    if ( $roles[0] == 'administrator' ) {
         wp_redirect( 'https://site.ru/page_for_admin' );
         exit;
    }
    
    // Редирект для подписчиков
    if ( $roles[0] == 'subscriber' ) {
         wp_redirect( 'https://site.ru/page_for_subscriber' );
         exit;
    }

    // Редирект для авторов
    if ( $roles[0] == 'author' ) {
         wp_redirect( 'https://site.ru/page_for_author' );
         exit;
    }

    // Редирект для редакторов
    if ( $roles[0] == 'editor' ) {
         wp_redirect( 'https://site.ru/page_for_editor' );
         exit;
    }

}
add_action( 'admin_init', 'redirect_users_after_login' );

В коде добавлены перенаправления для администраторов, подписчиков, редакторов и авторов. В функции wp_redirect() нужно вписать страницу для редиректа. Ненужные роли пользователей можно удалить.

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