Intereting Posts
Файл конфигурации без ключей.? Запрос адресов электронной почты для списка пользователей с тем же именем? Как определить, включено ли настраиваемое меню? Могу ли я запустить второй сайт wordpress в качестве субдомена без использования многосайта? Показать все сообщения в настраиваемом типе сообщений, сгруппированные по пользовательской таксономии wp_signon ($ creds, false); не работает Обнаружение, если плагин был включен в определенную страницу Импорт мультимедиа в CPT с помощью CLI & Filter Пользовательская таксономия Как сохранить собственный архив таксономии в качестве шаблона страницы? Сохранить выпадающий выбор как работает дополнительный css-рендеринг? Исключить сообщения с определенными тегами в категории архив WordPress внедряет вставленный AJAX контент WordPress comment_form () не отображает фактические комментарии Как загрузить динамическую опцию с помощью ajax

Как перенаправить конкретного пользователя после входа в систему?

Я хочу перенаправить пользователя, а его идентификатор пользователя – 6. Поэтому я добавил этот код в свои functions.php

 if ( is_user_logged_in() ) { $user_id = get_current_user_id(); if ($user_id == 6) { /* redirect users to front page after login */ function redirect_to_front_page() { global $redirect_to; if (!isset($_GET['redirect_to'])) { $redirect_to = get_option('siteurl'); } } add_action('login_form', 'redirect_to_front_page'); } } 

Но все же пользователь переходит на страницу rpofile после входа в систему. Как я могу заставить его работать?

[update] Затем я попытался изменить имя пользователя вместо идентификатора пользователя, но все равно. Он получает страницу профиля после входа в систему. как это:

 function redirect_to_front_page() { global $redirect_to; if ( is_user_logged_in() ) { //$user_id = get_current_user_id(); $current_user = wp_get_current_user(); //if ($user_id == 6) if ($current_user->user_login = 'hirer') { /* redirect users to front page after login */ if (!isset($_GET['redirect_to'])) { $redirect_to = get_option('siteurl'); } } } } add_action('login_redirect', 'redirect_to_front_page'); 

все еще ничего не изменилось. Пользователь получает страницу профиля при входе в систему.

Вам необходимо использовать фильтр login_redirect возвращающий местоположение перенаправления:

 add_filter( 'login_redirect', 'redirect_to_home', 10, 3 ); function redirect_to_home( $redirect_to, $request, $user ) { if( $user->ID == 6 ) { //If user ID is 6, redirect to home return get_home_url(); } else { //If user ID is not 6, leave WordPress handle the redirection as usual return $redirect_to; } } 

используйте login_redirect hook вместо login_form И вы можете перемещать условия внутри вашей функции

как показано ниже.

 function redirect_to_front_page() { global $redirect_to; if ( is_user_logged_in() ) { $user_id = get_current_user_id(); if ($user_id == 6) { /* redirect users to front page after login */ if (!isset($_GET['redirect_to'])) { return $redirect_to = get_option('siteurl'); } } } } add_action('login_redirect', 'redirect_to_front_page' , 10 , 3 );