Function Reference: geodir_register_new_user
Summary
Handles registering a new user.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
Package
GeoDirectory
Parameters
- $user_login
- (string) (required) User’s username for logging in.
- Default: None
- $user_email
- (string) (required) User’s email address to send password and add.
- Default: None
Return Values
- (int|WP_Error)
- Either user’s ID or error on failure.
Change Log
Since: 1.0.0
Actions
‘register_post’ [Line: 310]
‘geodir_user_register’ [Line: 391]
Filters
‘user_registration_email’ [Line: 270]
‘registration_errors’ [Line: 318]
‘geodir_manage_user_meta’ [Line: 351]
Source File
geodir_register_new_user() is located in geodirectory-functions/signup_function.php [Line: 254]
Source Code
function geodir_register_new_user($user_login, $user_email) { global $wpdb; $errors = new WP_Error(); $user_login = sanitize_user($user_login); $user_login = str_replace(",", "", $user_login); $user_email = str_replace(",", "", $user_email); /** * Filter the user registration email. * * @since 1.0.0 * * @param string $user_email User registration email. */ $user_email = apply_filters('user_registration_email', $user_email); if (get_option('geodir_allow_cpass')) { $user_pass = $_REQUEST['user_pass']; $user_pass2 = $_REQUEST['user_pass2']; // Check the password if ($user_pass != $user_pass2) { $errors->add('pass_match', __('ERROR: Passwords do not match.', 'geodirectory')); } elseif (strlen($user_pass) < 7) { $errors->add('pass_match', __('ERROR: Password must be 7 characters or more.', 'geodirectory')); } } // Check the username if ($user_login == '') $errors->add('empty_username', __('ERROR: Please enter a username.', 'geodirectory')); elseif (!validate_username($user_login)) { $errors->add('invalid_username', __('ERROR: This username is invalid. Please enter a valid username.', 'geodirectory')); $user_login = ''; } elseif (username_exists($user_login)) $errors->add('username_exists', __('ERROR: This username is already registered, please choose another one.', 'geodirectory')); // Check the e-mail address if ($user_email == '') { $errors->add('empty_email', __('ERROR: Please type your e-mail address.', 'geodirectory')); } elseif (!is_email($user_email)) { $errors->add('invalid_email', __('ERROR: The email address isn’t correct.', 'geodirectory')); $user_email = ''; } elseif (email_exists($user_email)) $errors->add('email_exists', __('ERROR: This email is already registered, please choose another one.', 'geodirectory')); /** * Called when registering a new user. * * This is a WordPress core hook. * * @link https://codex.wordpress.org/Plugin_API/Action_Reference/register_post * @since 1.0.0 */ do_action('register_post', $user_login, $user_email, $errors); /** * Filter the registration error messages. * * @since 1.0.0 * * @param object $errors Registration error messages. */ $errors = apply_filters('registration_errors', $errors,$user_login,$user_email); if ($errors->get_error_code()) return $errors; if (!isset($user_pass) || $user_pass == '') { $user_pass = wp_generate_password(12, false); } $user_id = wp_create_user($user_login, $user_pass, $user_email); $user_web = ''; /*$user_add1 = $_POST['user_add1']; $user_add2 = $_POST['user_add2']; $user_city = $_POST['user_city']; $user_state = $_POST['user_state']; $user_country = $_POST['user_country']; $user_postalcode = $_POST['user_postalcode']; $user_web = $_POST['user_web']; $user_phone = $_POST['user_phone']; $user_twitter = $_POST['user_twitter']; */ $user_fname = sanitize_user($_POST['user_fname']); $user_fname = str_replace(",", "", $user_fname); if ( empty( $user_fname ) ) { $user_fname = strstr( $user_login, '@', true ); } /** * Filter the submitted user meta. * * @since 1.0.0 * * @param int $user_id User ID. */ $user_address_info = apply_filters('geodir_manage_user_meta', array( "user_add1" => '', "user_add2" => '', "user_city" => '', "user_state" => '', "user_country" => '', "user_postalcode" => '', "user_phone" => '', "user_twitter" => '', "first_name" => $user_fname, "last_name" => '', ), $user_id); foreach ($user_address_info as $key => $val) { update_user_meta($user_id, $key, $val); // User Address Information Here } //update_user_meta($user_id, 'user_address_info', ($user_address_info)); // User Address Information Here $userName = $user_fname; update_user_meta($user_id, 'first_name', $userName); // User Address Information Here //update_user_meta($user_id, 'last_name', $_POST['user_lname']); // User Address Information Here $user_nicename = geodir_generate_user_nicename( $userName, $user_login ); $updateUsersql = $wpdb->prepare("update $wpdb->users set user_url=%s, user_nicename=%s, display_name=%s where ID=%d", array($user_web, $user_nicename, $userName, $user_id)); $wpdb->query($updateUsersql); if (!$user_id) { $errors->add('registerfail', sprintf(__('ERROR: Couldn’t register you... please contact the webmaster !', 'geodirectory'), get_option('admin_email'))); return $errors; } global $upload_folder_path; if ($user_id) { clean_user_cache($user_id); /** * Called after registering a user and before the registration email is sent. * * @since 1.0.0 * @param int $user_id The user ID of the registered user. */ do_action('geodir_user_register', $user_id); ///////REGISTRATION EMAIL START////// $fromEmail = geodir_get_site_email_id(); $fromEmailName = get_site_emailName(); $message = __('' . __('Your login Information :', 'geodirectory') . '
' . __('Username:', 'geodirectory') . ' ' . $user_login . '
' . __('Password:', 'geodirectory') . ' ' . $user_pass . '
'); /////////////customer email////////////// //geodir_sendEmail($fromEmail,$fromEmailName,$user_email,$userName,$subject,$client_message,$extra='');///To client email geodir_sendEmail($fromEmail, $fromEmailName, $user_email, $userName, '', $message, '', 'registration', '', $user_id);/// registration email //////REGISTRATION EMAIL END//////// } if (get_option('ptthemes_auto_login')) { $errors->add('auto_login', __('SUCCESS: Thank you for registering, please check your email for your login details.', 'geodirectory')); return $errors; } return array($user_id, $user_pass); }