Function Reference: geodir_retrieve_password

Summary

Handles sending password retrieval email to user.

Global Values

$wpdb
(object) (required) WordPress Database object.

Default: None

Package

GeoDirectory

Return Values

(bool|WP_Error)
  • True: when finish.
  • WP_Error on error.

Change Log

Since: 1.0.0

Actions

‘lostpassword_post’ [Line: 162]

‘retrieve_password’ [Line: 182]

‘password_reset’ [Line: 207]

Filters

‘password_reset_title’ [Line: 228]

‘password_reset_message’ [Line: 237]

Source File

geodir_retrieve_password() is located in geodirectory-functions/signup_function.php [Line: 139]

Source Code

function geodir_retrieve_password()
{
    global $wpdb;

    $errors = new WP_Error();
    if (empty($_POST['user_login']) && empty($_POST['user_email']))
        $errors->add('empty_username', __('ERROR: Enter a username or e-mail address.', 'geodirectory'));

    if (strpos($_POST['user_login'], '@')) {
        //$user_data = get_user_by_email(trim($_POST['user_login']));
        $user_data = get_user_by('email', trim($_POST['user_login']));
        if (empty($user_data))
            $errors->add('invalid_email', __('ERROR: There is no user registered with that email address.', 'geodirectory'));
    } else {
        $login = trim($_POST['user_login']);
        $user_data = get_user_by('email', $login);
    }

    /**
     * Called in the geodir_retrieve_password() function before any errors are set or any emails are sent.
     *
     * @since 1.0.0
     */
    do_action('lostpassword_post');

    if ($errors->get_error_code())
        return $errors;

    if (!$user_data) {
        $errors->add('invalidcombo', __('ERROR: Invalid username or e-mail.', 'geodirectory'));
        return $errors;
    }

    // redefining user_login ensures we return the right case in the email
    $user_login = $user_data->user_login;
    $user_email = $user_data->user_email;

    /**
     * Called in the geodir_retrieve_password() function before any emails are sent.
     *
     * @since 1.0.0
     * @param string $user_login The users username.
     */
    do_action('retrieve_password', $user_login);

    ////////////////////////////////////
    $user_email = isset($_POST['user_email']) ? $_POST['user_email'] : '';
    $user_login = $_POST['user_login'];

    $user = $wpdb->get_row(
        $wpdb->prepare(
            "SELECT * FROM $wpdb->users WHERE user_login like %s or user_email like %s",
            array($user_login, $user_login)
        )
    );

    if (empty($user))
        return new WP_Error('invalid_key', __('Invalid key', 'geodirectory'));

    $new_pass = wp_generate_password(12, false);

    /**
     * Called in the geodir_retrieve_password() function before any emails are sent.
     *
     * @since 1.0.0
     * @param object $user The user object.
     * @param string $new_pass The new pass being sent to the user.
     */
    do_action('password_reset', $user, $new_pass);

    wp_set_password($new_pass, $user->ID);
    update_user_meta($user->ID, 'default_password_nag', true); //Set up the Password change nag.
    $message = '

' . __('Your login Information :', 'geodirectory') . '

'; $message .= '

' . sprintf(__('Username: %s', 'geodirectory'), $user->user_login) . "

"; $message .= '

' . sprintf(__('Password: %s', 'geodirectory'), $new_pass) . "

"; //$message .= '

You can login to : Login or the URL is : ".home_url()."/?ptype=login

"; //$message .= '

Thank You,
'.get_option('blogname').'

'; $user_email = $user_data->user_email; $user_name = geodir_get_client_name($user->ID); $fromEmail = geodir_get_site_email_id(); $fromEmailName = get_site_emailName(); $title = sprintf(__('[%s] Your new password', 'geodirectory'), get_option('blogname')); /** * Filter the password reset email subject part. * * @since 1.0.0 * * @param string $title Password reset email subject. */ $title = apply_filters('password_reset_title', $title); /** * Filter the password reset email message part. * * @since 1.0.0 * * @param string $message Password reset email message. * @param string $new_pass The new password string. */ $message = apply_filters('password_reset_message', $message, $new_pass); //geodir_sendEmail($fromEmail,$fromEmailName,$user_email,$user_name,$title,$message,$extra='');///forgot password email geodir_sendEmail($fromEmail, $fromEmailName, $user_email, $user_name, $title, $message, $extra = '', 'forgot_password', $post_id = '', $user->ID);///forgot password email return true; }