I have insert the login form on the header part and when a user is logedin i need to redirect them based on their role to their profile page(like if they are normal than normal-member.php and if pro user than pro-user.php). How can i do that using the wp_login_form.Any suggestion please...
1 Answer
You can use the login_redirect filter for this purpose:
/** * Redirect user after successful login. * * @param string $redirect_to URL to redirect to. * @param string $request URL the user is coming from. * @param object $user Logged user's data. * @return string */ function my_login_redirect( $redirect_to, $request, $user ) { //is there a user to check? global $user; 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; //here make if statements for your specific roles and locations } else { return home_url(); } } else { return $redirect_to; } } add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); - Will it not redirect all logged in users, regardless of from which login form they use. I think defining redirect in login form would be better.Robert hue– Robert hue2015-09-05 18:42:10 +00:00Commented Sep 5, 2015 at 18:42
- You could always check for your own login form by passing in a custom POST variable for example?jukra– jukra2015-09-06 18:55:10 +00:00Commented Sep 6, 2015 at 18:55
- @JukkaRautanen it works with little modification for more usersclap– clap2015-09-08 10:41:17 +00:00Commented Sep 8, 2015 at 10:41