/** * Send a password reset code via email * * @param WP_User $user_data * @return true|WP_Error True if mail was sent, or WP_Error on error */ private static function send_reset_code($user_data) { if (!$user_data instanceof \WP_User) { return new \WP_Error('internal_error', __('An internal program error has occured. Your request cannot be complied with. Please inform us.', 'YALW'), 'error'); } if (!Handlers::get_retrieval_key($user_data)) { return new \WP_Error('internal_error', __('An internal program error has occured. Your request cannot be complied with. Please inform us.', 'YALW'), 'error'); } $blogname = Handlers::get_blogname(); $title = Handlers::create_mail_title($blogname); $db_code = Handlers::get_retrieval_code($user_data->user_login); if (empty($db_code)) { // could not get the code from the database return new \WP_error('unknown_error', __('There seems to be a problem with our database. Sorry. Please try again later.', 'YALW'), 'error'); } $message = Handlers::get_password_retrieval_message($user_data->user_login, $db_code); if (!wp_mail($user_data->user_email, wp_specialchars_decode($title), $message)) { return new \WP_error('email_not_sent', __('The e-mail could not be sent.', 'YALW') . '<br />' . __('Possible reason: your host may have disabled the mail() function.', 'YALW'), 'error'); } else { Session::clean_code_error_count(); return true; } }