if ( !function_exists('bb_check_login') ) :
function bb_check_login($user, $pass, $already_md5 = false) {
global $wp_users_object;
if ( !bb_get_option( 'email_login' ) || false === strpos( $user, '@' ) )
{ // user_login
$user = $wp_users_object->get_user( $user, array( 'by' => 'login' ) );
} else { // maybe an email
echo $email_user = $wp_users_object->get_user( $user, array( 'by' => 'email' ) );
echo "
".$user = $wp_users_object->get_user( $user, array( 'by' => 'login' ) );
// 9 cases. each can be FALSE, USER, or WP_ERROR
if (
( !$email_user && $user ) // FALSE && USER, FALSE && WP_ERROR
||
( is_wp_error( $email_user ) && $user && !is_wp_error( $user ) ) // WP_ERROR && USER
) {
// nope: it really was a user_login
// [sic]: use $user
} elseif (
( $email_user && !$user ) // USER && FALSE, WP_ERROR && FALSE
||
( $email_user && !is_wp_error( $email_user ) && is_wp_error( $user ) ) // USER && WP_ERROR
) {
// yup: it was an email
$user =& $email_user;
} elseif ( !$email_user && !$user ) { // FALSE && FALSE
// Doesn't matter what it was: neither worked
return false;
} elseif ( is_wp_error( $email_user ) && is_wp_error( $user ) ) { // WP_ERROR && WP_ERROR
// This can't happen. If it does, let's use the email error. It's probably "multiple matches", so maybe logging in with a username will work
$user =& $email_user;
} elseif ( $email_user && $user ) { // USER && USER
// both are user objects
if ( $email_user->ID == $user->ID ); // [sic]: they are the same, use $user
elseif ( bb_check_password($pass, $user->user_pass, $user->ID) ); // [sic]: use $user
elseif ( bb_check_password($pass, $email_user->user_pass, $email_user->ID) )
$user =& $email_user;
} else { // This can't happen, that's all 9 cases.
// [sic]: use $user
}
}
if ( !$user )
return false;
if ( is_wp_error($user) )
return $user;
if ( !bb_check_password($pass, $user->user_pass, $user->ID) )
return false;
// User is logging in for the first time, update their user_status to normal
//Darshakkumar Shah' Own Code for Approve or not approve by admin
if($user->request==1)
{
if ( 1 == $user->user_status )
bb_update_user_status( $user->ID, 0 );
return $user;
}
else
{
header("Location:index.php?msg=1");
}
}
endif;
No comments:
Post a Comment