Я вернулся к исходному источнику информации, который я использовал, коду WordPress: Ссылка на Кодекс
Я понял, что переменная $user
не определенаглобально внутри функции там.Я понятия не имею, как получилось, что это было в моем коде.
После удаления, а также после удаления второго else
для первого оператора if
код работает и выглядит следующим образом:
// Custom successful login redirect based on user role
function my_login_redirect( $redirect_to, $request, $user ) {
// is there a user to check?
if (isset($user->roles) && is_array($user->roles)) {
// check for 'company' user role and redirect in case
if (in_array('company', $user->roles)) {
$redirect_to = home_url('/arbeitskraft-finden/');
// check for 'worker' user role and redirect in case
} elseif (in_array('worker', $user->roles)) {
$redirect_to = home_url('/wp-admin/chat/');
// otherwise, redirect to wp-admin
} else {
$redirect_to = home_url('/wp-admin/');
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
// END Custom successful login redirect based on user role