diff --git a/wp-login.php b/wp-login.php index 3c43caec48..6a2a6b6895 100644 --- a/wp-login.php +++ b/wp-login.php @@ -459,11 +459,14 @@ case 'rp' : exit; } - $errors = ''; + $errors = new WP_Error(); - if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] ) { - $errors = new WP_Error('password_reset_mismatch', __('The passwords do not match.')); - } elseif ( isset($_POST['pass1']) && !empty($_POST['pass1']) ) { + if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] ) + $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) ); + + do_action( 'validate_password_reset', $errors, $user ); + + if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) { reset_password($user, $_POST['pass1']); login_header( __( 'Password Reset' ), '
' ); login_footer();