Why in the first place you created custom tables? There is wp_usermeta table for storing any kind of extra data to build custom user profiles with extra fields.
Also you can hook into native WP login process and allow logging in with email.
What method of logging in you are using?
Checking if user is administrator:
if ( current_user_can( 'manage_options' ) ) {
/* A user with admin privileges */
wp_redirect( 'YOUR_TARGET_ABSOLUTE_URL' );
exit;
}
But there’s even better way, as described in Codex:
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 home_url();
}
} else {
return $redirect_to;
}
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
The function is pretty self explanatory. Change $redirect_to destination to one of your choice.