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)); } } }