/**
  * Register new WordPress user using data fetched from social networks.
  */
 public static function register_user($profileData, $loginRadiusPopup = false, $redirect = true)
 {
     global $loginRadiusSettings;
     $dummyEmail = $loginRadiusSettings['LoginRadius_dummyemail'];
     $userPassword = wp_generate_password();
     $bio = $profileData['Bio'];
     $profileUrl = $profileData['ProfileUrl'];
     $socialId = $profileData['ID'];
     $thumbnail = $profileData['ThumbnailImageUrl'];
     if (isset($socialId) && !empty($socialId)) {
         if (!empty($profileData['Email'])) {
             $email = $profileData['Email'];
         }
         // Create username, firstname and lastname
         $usernameFirstnameLastname = explode('|LR|', self::create_user_name($profileData));
         $userName = $usernameFirstnameLastname[0];
         $firstName = $usernameFirstnameLastname[1];
         $lastName = $usernameFirstnameLastname[2];
         $role = get_option('default_role');
         $sendemail = isset($loginRadiusSettings['LoginRadius_sendemail']) ? $loginRadiusSettings['LoginRadius_sendemail'] : '';
         // Look for user with username match.
         $seperator = array("dash" => '-', "dot" => '.', "space" => ' ');
         if (isset($loginRadiusSettings['username_separator'])) {
             $userName = str_replace(' ', $seperator[$loginRadiusSettings['username_separator']], $userName);
         } else {
             $userName = str_replace(' ', '-', $userName);
         }
         $username = self::create_another_username_if_already_exists($userName);
         $userdata = array('user_login' => $username, 'user_pass' => $userPassword, 'user_nicename' => sanitize_title($firstName), 'user_email' => $email, 'display_name' => $firstName, 'nickname' => $firstName, 'first_name' => $firstName, 'last_name' => $lastName, 'description' => $bio, 'user_url' => $profileUrl, 'role' => $role);
         $user_id = wp_insert_user($userdata);
         // Check if error due to empty user_login
         if (isset($user_id->errors) && isset($user_id->errors['empty_user_login'])) {
             $userdata['user_login'] = strtoupper($profileData['Provider']) . $socialId;
             $user_id = wp_insert_user($userdata);
         }
         do_action('lr_save_profile_data', $user_id, $profileData);
         // Mailchimp
         do_action('lr_create_social_profile_data', $user_id);
         // Delete temporary data.
         self::login_radius_delete_temporary_data($profileData);
         if (!is_wp_error($user_id)) {
             // Set loginradius_provider_id usermeta
             if (!empty($socialId)) {
                 update_user_meta($user_id, 'loginradius_provider_id', $socialId);
             }
             // Set loginradius_thumbnail usermeta
             if (!empty($thumbnail)) {
                 update_user_meta($user_id, 'loginradius_thumbnail', $thumbnail);
             }
             // Set loginradius_picture usermeta
             if (!empty($profileData['PictureUrl'])) {
                 if (!empty($profileData['Provider']) && 'twitter' == $profileData['Provider']) {
                     update_user_meta($user_id, 'loginradius_picture', $profileData['PictureUrl'] = str_replace('_normal', '', $profileData['PictureUrl']));
                 } else {
                     update_user_meta($user_id, 'loginradius_picture', $profileData['PictureUrl']);
                 }
             }
             // Set loginradius_provider usermeta
             if (!empty($profileData['Provider'])) {
                 update_user_meta($user_id, 'loginradius_provider', $profileData['Provider']);
             }
             if ($loginRadiusPopup) {
                 $loginRadiusKey = $user_id . time() . mt_rand();
                 update_user_meta($user_id, 'loginradius_verification_key', $loginRadiusKey);
                 update_user_meta($user_id, 'loginradius_isVerified', '0');
                 LR_Common::login_radius_send_verification_email($email, $loginRadiusKey);
                 // set status
                 if (isset($loginRadiusSettings['LoginRadius_defaultUserStatus']) && $loginRadiusSettings['LoginRadius_defaultUserStatus'] == '0') {
                     update_user_meta($user_id, 'loginradius_status', '0');
                 } else {
                     update_user_meta($user_id, 'loginradius_status', '1');
                 }
                 self::login_radius_notify(__('Confirmation link has been sent to your email address. Please verify your email by clicking on confirmation link.', 'LoginRadius'), 'isConfirmationLinkSent');
                 return;
             }
             if (!class_exists('LR_Raas_Install')) {
                 if ($sendemail == 'sendemail') {
                     if ($dummyEmail == 'notdummyemail' && $loginRadiusPopup == true) {
                     } else {
                         wp_new_user_notification($user_id, $userPassword);
                     }
                 } else {
                     // notification to admin
                     LR_Common::login_radius_send_verification_email(trim(get_option('admin_email')), '', '', 'admin notification', $user_id);
                 }
             }
             // set status if option is enabled
             if (isset($loginRadiusSettings['LoginRadius_enableUserActivation']) && $loginRadiusSettings['LoginRadius_enableUserActivation'] == '1') {
                 if (isset($loginRadiusSettings['LoginRadius_defaultUserStatus']) && $loginRadiusSettings['LoginRadius_defaultUserStatus'] == '0') {
                     update_user_meta($user_id, 'loginradius_status', '0');
                     self::login_radius_notify(__('Your account is currently inactive. You will be notified through email, once Administrator activates your account.', 'LoginRadius'), 'isAccountInactive');
                     exit;
                 } else {
                     update_user_meta($user_id, 'loginradius_status', '1');
                 }
             }
             if ($redirect) {
                 self::login_user($user_id, $profileData, true, true, true);
             } else {
                 self::login_user($user_id, $profileData, true, true, false);
             }
         } else {
             if ($redirect) {
                 self::login_radius_redirect($user_id, true);
             }
         }
     }
 }
function login_radius_change_user_status()
{
    $currentStatus = $_POST['current_status'];
    $userId = $_POST['user_id'];
    if (class_exists('LR_Raas_Install')) {
        $uid = get_user_meta($userId, 'lr_raas_uid', true);
        raas_block_user(array('isblock' => !$currentStatus), $uid);
    }
    if ($currentStatus == '1') {
        update_user_meta($userId, 'loginradius_status', '0');
        die('done');
    } elseif ($currentStatus == '0') {
        update_user_meta($userId, 'loginradius_status', '1');
        $user = get_userdata($userId);
        $userName = $user->display_name != '' ? $user->display_name : $user->user_nicename;
        $username = $userName != '' ? ucfirst($userName) : ucfirst($user->user_login);
        try {
            LR_Common::login_radius_send_verification_email($user->user_email, '', '', 'activation', $username);
        } catch (Exception $e) {
            die('error');
        }
        die('done');
    }
}