Leave a Reply

2 comments

  1. filter login_redirect:

    function my_login_redirect_contributors() {
      if ( current_user_can('contributor') ){
          return 'url-to-redirect-to';
      }
    }
    
    add_filter('login_redirect', 'my_login_redirect_contributors');
    
  2. Although this question is a year old hopefully this can help some people.

    I ran into a case where the accepted answer didn’t work because the global $current_user was a WP_User object but had null values. The following code is what I found to work. Note the use of the 3rd parameter $user:

    function 22352_login_redirect( $redirect_url, $POST_redirect_url, $user ) {
      if ( is_a( $user, 'WP_User' ) && $user->has_cap( 'manage_options' ) ) {
        $redirect_url = 'url-to-redirect-to';
      }
      return $redirect_url;
    }
    add_filter( 'login_redirect', array( $this, 'wpse22352_login_redirect' ), 10, 3 );