From b3e297925c9096af91f0579d103ea70265da3c52 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Fri, 24 May 2019 22:14:52 +0000 Subject: [PATCH] Mail: Improve the user experience when the password reset email cannot be sent. This introduces a link to the support page for resetting your password, and improves the error by bringing it into the login page instead of a `wp_die()`. Props neelpatel7295, estelaris, desrosj Built from https://develop.svn.wordpress.org/trunk@45404 git-svn-id: http://core.svn.wordpress.org/trunk@45215 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/version.php | 2 +- wp-login.php | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/wp-includes/version.php b/wp-includes/version.php index a1e0c6da10..a3d548d864 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.3-alpha-45403'; +$wp_version = '5.3-alpha-45404'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/wp-login.php b/wp-login.php index 5ecf5f0dbf..ab051d244e 100644 --- a/wp-login.php +++ b/wp-login.php @@ -45,7 +45,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) { } // Shake it! - $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' ); + $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password', 'retrieve_password_email_failure' ); /** * Filters the error codes array for shaking the login form. * @@ -426,7 +426,16 @@ function retrieve_password() { $message = apply_filters( 'retrieve_password_message', $message, $key, $user_login, $user_data ); if ( $message && ! wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) ) { - wp_die( __( 'The email could not be sent. Possible reason: your host may have disabled the mail() function.' ) ); + /* translators: URL to support page for resetting your password */ + $support = __( 'https://wordpress.org/support/article/resetting-your-password/' ); + $errors->add( + 'retrieve_password_email_failure', + sprintf( + __( 'ERROR: The e-mail could not be sent. Your site may not be correctly configured to send e-mails. Get support for resetting your password.' ), + esc_url( $support ) + ) + ); + return $errors; } return true;