/** * 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'); } }