0

In my application a user needs to 1stlogin and is then able to access the website.

There are 3 different user roles in use on my site

  1. administrator
  2. editor
  3. contributor

User can login from

http://example.com/wordpress/wp-login.php

No login from any theme template.

I have found this code, but it doesn't work

function my_login_redirect_contributors() {
  if ( current_user_can('contributor') ){
      return 'url-to-redirect-to';
  }
}

add_filter('login_redirect', 'my_login_redirect_contributors');

Note: I do not want to use plugin like Peter's Login Redirect. I want to achieve it by customizing wp core code with a filter.

3
  • Why is the code you posted not working?
    – mor7ifer
    Jan 31, 2012 at 10:45
  • @m0r7if3r Ops its just for an idea
    – Ajay Patel
    Jan 31, 2012 at 10:46
  • I gathered. What specifically about it is failing, because that code looks good to me.
    – mor7ifer
    Jan 31, 2012 at 10:48

1 Answer 1

2

You're using the filter wrong. If you got more than one @param, then you have to state them when adding the filter.

function wpse40745_redirect_on_login( $redirect_to, isset( $_REQUEST['redirect_to'] ), $user )
{
    # uncomment the following line if it's not working and replace $user->roles[0] with something that works
    // echo '<pre>'; print_r( $user ); echo '</pre>'; exit;

    if ( in_array( $user->roles[0], array( 'contributer', 'whatever_other_role ) ) )
        return home_url();

    return $redirect_to;
}
add_filter( 'login_redirect', 'wpse40745_redirect_on_login', 20, 3 );
0

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .