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;
} else {
return $_POST['user_extra'];
}
} else {
return $redirect_to;
}
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
function myplugin_add_login_fields() {
$url = $_SERVER['HTTP_REFERER'];
if($url == "") $url = site_url();
//Get and set any values already sent
$user_extra = ( isset( $_POST['user_extra'] ) ) ? $_POST['user_extra'] : $_SERVER['HTTP_REFERER'];
echo '<input type="hidden" name="user_extra" id="user_extra" class="input" value="'.esc_attr(stripslashes($user_extra)).'" size="25" />';
}
add_action( 'login_form', 'myplugin_add_login_fields' );