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