/** * Create user in Wordpress database. */ function the_champ_create_user($profileData, $verification = false) { // create username, firstname and lastname $usernameFirstnameLastname = explode('|tc|', the_champ_create_username($profileData)); $username = $usernameFirstnameLastname[0]; $firstName = $usernameFirstnameLastname[1]; $lastName = $usernameFirstnameLastname[2]; // make username unique $nameexists = true; $index = 1; $username = str_replace(' ', '-', $username); //cyrillic username $username = sanitize_user($username, true); if ($username == '-') { $emailParts = explode('@', $profileData['email']); $username = $emailParts[0]; } $userName = $username; while ($nameexists == true) { if (username_exists($userName) != 0) { $index++; $userName = $username . $index; } else { $nameexists = false; } } $username = $userName; $password = wp_generate_password(); $userdata = array('user_login' => $username, 'user_pass' => $password, 'user_nicename' => sanitize_user($firstName, true), 'user_email' => $profileData['email'], 'display_name' => $firstName, 'nickname' => $firstName, 'first_name' => $firstName, 'last_name' => $lastName, 'description' => isset($profileData['bio']) && $profileData['bio'] != '' ? $profileData['bio'] : '', 'user_url' => isset($profileData['link']) && $profileData['link'] != '' ? $profileData['link'] : '', 'role' => get_option('default_role')); $userId = wp_insert_user($userdata); if (!is_wp_error($userId)) { if (isset($profileData['id']) && $profileData['id'] != '') { update_user_meta($userId, 'thechamp_social_id', $profileData['id']); } if (isset($profileData['avatar']) && $profileData['avatar'] != '') { update_user_meta($userId, 'thechamp_avatar', $profileData['avatar']); } if (isset($profileData['large_avatar']) && $profileData['large_avatar'] != '') { update_user_meta($userId, 'thechamp_large_avatar', $profileData['large_avatar']); } if (!empty($profileData['provider'])) { update_user_meta($userId, 'thechamp_provider', $profileData['provider']); } if (!$verification) { wp_new_user_notification($userId, null, 'both'); } // insert profile data in BP XProfile table global $theChampLoginOptions; if (isset($theChampLoginOptions['xprofile_mapping']) && is_array($theChampLoginOptions['xprofile_mapping'])) { foreach ($theChampLoginOptions['xprofile_mapping'] as $key => $val) { // save xprofile fields global $wpdb; $value = ''; if (isset($profileData[$val])) { $value = $profileData[$val]; } $wpdb->insert($wpdb->prefix . 'bp_xprofile_data', array('id' => NULL, 'field_id' => $wpdb->get_var($wpdb->prepare("SELECT id FROM " . $wpdb->prefix . "bp_xprofile_fields WHERE name = %s", $key)), 'user_id' => $userId, 'value' => $value, 'last_updated' => ''), array('%d', '%d', '%d', '%s', '%s')); } } // hook - user successfully created do_action('the_champ_user_successfully_created', $userId, $userdata, $profileData); return $userId; } return false; }
/** * Create user in Wordpress database. */ function the_champ_create_user($profileData, $verification = false) { // create username, firstname and lastname $usernameFirstnameLastname = explode('|tc|', the_champ_create_username($profileData)); $username = $usernameFirstnameLastname[0]; $firstName = $usernameFirstnameLastname[1]; $lastName = $usernameFirstnameLastname[2]; // make username unique $nameexists = true; $index = 1; $username = str_replace(' ', '-', $username); $userName = $username; while ($nameexists == true) { if (username_exists($userName) != 0) { $index++; $userName = $username . $index; } else { $nameexists = false; } } $username = $userName; $password = wp_generate_password(); $userdata = array('user_login' => $username, 'user_pass' => $password, 'user_nicename' => sanitize_title($firstName), 'user_email' => $profileData['email'], 'display_name' => $firstName, 'nickname' => $firstName, 'first_name' => $firstName, 'last_name' => $lastName, 'description' => isset($profileData['bio']) && $profileData['bio'] != '' ? $profileData['bio'] : '', 'user_url' => isset($profileData['link']) && $profileData['link'] != '' ? $profileData['link'] : '', 'role' => get_option('default_role')); $userId = wp_insert_user($userdata); if (!is_wp_error($userId)) { if (isset($profileData['id']) && $profileData['id'] != '') { update_user_meta($userId, 'thechamp_social_id', $profileData['id']); } if (isset($profileData['avatar']) && $profileData['avatar'] != '') { update_user_meta($userId, 'thechamp_avatar', $profileData['avatar']); } if (isset($profileData['large_avatar']) && $profileData['large_avatar'] != '') { update_user_meta($userId, 'thechamp_large_avatar', $profileData['large_avatar']); } if (!empty($profileData['provider'])) { update_user_meta($userId, 'thechamp_provider', $profileData['provider']); } if (!$verification) { the_champ_password_email($userId, $password); } // hook - user successfully created do_action('the_champ_user_successfully_created', $userId, $userdata, $profileData); return $userId; } return false; }