function wangguard_allow_singup_splogger_check_email($user_email)
{
    $sploggerallowedtosignup = wangguard_look_for_allowed_email($user_email);
    if ($sploggerallowedtosignup) {
        add_filter('pre_wangguard_validate_signup_form_wordpress_no_multisite', 'wangguard_allow_signup_whitelisted', 10, 3);
    }
}
/**
 * Saves the status of the verification against WangGuard service upon user registration
 *
 * @global type $wpdb
 * @global type $wangguard_user_check_status
 * @param type $userid
 */
function wangguard_plugin_user_register($userid)
{
    global $wpdb;
    global $wangguard_user_check_status;
    $user = new WP_User($userid);
    $user_email = $user->user_email;
    $wangguarstatus = wangguard_look_for_allowed_email($user_email);
    if (!$wangguarstatus) {
        if (empty($wangguard_user_check_status)) {
            $user = new WP_User($userid);
            $table_name = $wpdb->base_prefix . "wangguardsignupsstatus";
            //if there a status on the signups table?
            $user_status = $wpdb->get_var($wpdb->prepare("select user_status from {$table_name} where signup_username = '******'", $user->user_login));
            //delete the signup status
            $wpdb->query($wpdb->prepare("delete from {$table_name} where signup_username = '******'", $user->user_login));
            //If not empty, overrides the status with the signup status
            if (!empty($user_status)) {
                $wangguard_user_check_status = $user_status;
            }
        }
        $table_name = $wpdb->base_prefix . "wangguarduserstatus";
        $user_status = $wpdb->get_var($wpdb->prepare("select ID from {$table_name} where ID = %d", $userid));
        if (is_null($user_status)) {
            //insert the new status
            $wpdb->query($wpdb->prepare("insert into {$table_name}(ID , user_status , user_ip , user_proxy_ip) values (%d , '%s' , '%s' , '%s')", $userid, $wangguard_user_check_status, wangguard_getRemoteIP(), wangguard_getRemoteProxyIP()));
        } else {
            //update the new status
            $wpdb->query($wpdb->prepare("update {$table_name} set user_status = '%s' where ID = %d", $wangguard_user_check_status, $userid));
        }
    } else {
        $wangguard_user_check_status = 'whitelisted';
        if (empty($wangguard_user_check_status)) {
            $user2 = new WP_User($userid);
            $table_name = $wpdb->base_prefix . "wangguardsignupsstatus";
            //if there a status on the signups table?
            $user_status = $wpdb->get_var($wpdb->prepare("select user_status from {$table_name} where signup_username = '******'", $user2->user_login));
            //delete the signup status
            $wpdb->query($wpdb->prepare("delete from {$table_name} where signup_username = '******'", $user2->user_login));
            //If not empty, overrides the status with the signup status
            if (!empty($user_status)) {
                $wangguard_user_check_status = 'whitelisted';
            }
        }
        $table_name = $wpdb->base_prefix . "wangguarduserstatus";
        $user_status = $wpdb->get_var($wpdb->prepare("select ID from {$table_name} where ID = %d", $userid));
        if (is_null($user_status)) {
            //insert the new status
            $wpdb->query($wpdb->prepare("insert into {$table_name}(ID , user_status , user_ip , user_proxy_ip) values (%d , '%s' , '%s' , '%s')", $userid, $wangguard_user_check_status, wangguard_getRemoteIP(), wangguard_getRemoteProxyIP()));
        } else {
            //update the new status
            $wpdb->query($wpdb->prepare("update {$table_name} set user_status = '%s' where ID = %d", $wangguard_user_check_status, $userid));
        }
    }
}