Попробуйте это:
function rohil_login_redirect_based_on_roles($user_login, $user) {
if(in_array('student_role',$user->roles)){
exit(wp_redirect('Your page link goes here'));
}
}
add_action('wp_login', 'rohil_login_redirect_based_on_roles', 10, 2);
Объяснение
Если вы посмотрите на codex, вы обнаружите, что wp_login
обеспечивает два параметра: 1) $user_login
который будет возвращать строку и 2) $user
будет возвращает объект, содержащий все детали.
Но вам необходимо убедиться, что вы также перейдете priority к этим параметрам в противном случае. Это даст вам ошибку.
Если вы хотите увидеть, какие данные находятся в этом параметре, вы можете запустить ниже код для цели обучения.
function rohil_login_redirect_based_on_roles($user_login, $user) {
var_dump($user); // Will give you an object
var_dump($user_login); //Will give you a string
die();
}
add_action('wp_login', 'rohil_login_redirect_based_on_roles', 10, 2);
Убедитесь, что вы удалите выше код из functions.php
после проверки того, что данные, которые он содержит
Так как вы можете $user
объекта содержит роли, который показывает, вошедшие в роли пользователя. Таким образом, я просто проверил, что if($user->roles[0] === 'student_role')
, если текущий зарегистрированный пользователь имеет student_role
, тогда wp_redirect('Your page link goes here')
перенаправляет их на какую-то страницу.
Сообщите мне, если у вас есть какие-либо сомнения.
Спасибо, что он сработал отлично –
Можете ли вы, пожалуйста, объяснить код ура. Я имею в виду, что y u передал параметры для работы. и, пожалуйста, скажите, что вы использовали крючок действия, например add_action ('wp_login', 'rohil_login_redirect_based_on_roles', 10, 2); –
Отлично ... и, пожалуйста, скажите, что это делает: add_action ('wp_login', 'rohil_login_redirect_based_on_roles', 10, 2); –