2016-09-03 8 views
0

Ich habe den folgenden Code geschrieben. Immer wenn ich mich anmelde, wird der $ username nicht ausgeführt und leer gelassen.Umleiten zu meiner spezifischen URL, die den Benutzernamen enthält - Wordpress

function my_login_redirect($redirect_to, $request, $user) { 
    global $current_user; 
$current_member = wp_get_current_user(); 
$username = $current_member->user_login; 
    $url = home_url("/connections/$username/profile/edit/group/1/"); 


    if (isset($user->roles) && is_array($user->roles)) { 
     //check for admins 
     if (in_array('administrator', $user->roles)) { 
      // redirect them to the default place 
      return $redirect_to; 
     } else { 
      return esc_url($url); 
     } 
    } else { 
     return $redirect_to; 
    } 
} 

add_filter('login_redirect', 'my_login_redirect', 10, 3); 

Antwort

0

Die globale $currentuser ist in dieser Filter Anfrage nicht verfügbar als here angegeben

Aber die $user ist während der Anforderung von Funktionsparametern zur Verfügung, so einfach sollte diese Arbeit

function my_login_redirect($redirect_to, $request, $user) { 
$username = $user->user_login; 
$url = home_url("/connections/$username/profile/edit/group/1/"); 
if (isset($user->roles) && is_array($user->roles)) { 
    if (in_array('administrator', $user->roles)) { 
     return $redirect_to; 
    } else { 
     return esc_url($url); 
    } 
} else { 
    return $redirect_to; 
} 
} 
add_filter('login_redirect', 'my_login_redirect', 10, 3); 
Verwandte Themen