Make WordPress Core


Ignore:
Timestamp:
11/02/2016 04:26:18 AM (9 years ago)
Author:
helen
Message:

Mail: Set a better error code when triggering wp_mail_failed.

This error code is now... wait for it... wp_mail_failed. Previously, this would have been the originating PHPMailer error code, which could be 0, which would then fail (pass?) the empty() check in the WP_Error constructor, thereby rendering the error object fairly useless. The PHPMailer error code is now located within the WP_Error data.

props Kau-Boy, stephenharris.
fixes #35598.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/pluggable.php

    r39051 r39086  
    473473
    474474        $mail_error_data = compact( 'to', 'subject', 'message', 'headers', 'attachments' );
     475        $mail_error_data['phpmailer_exception_code'] = $e->getCode();
    475476
    476477        /**
     
    479480         * @since 4.4.0
    480481         *
    481          * @param WP_Error $error A WP_Error object with the phpmailerException code, message, and an array
     482         * @param WP_Error $error A WP_Error object with the phpmailerException message, and an array
    482483         *                        containing the mail recipient, subject, message, headers, and attachments.
    483484         */
    484         do_action( 'wp_mail_failed', new WP_Error( $e->getCode(), $e->getMessage(), $mail_error_data ) );
     485        do_action( 'wp_mail_failed', new WP_Error( 'wp_mail_failed', $e->getMessage(), $mail_error_data ) );
    485486
    486487        return false;
Note: See TracChangeset for help on using the changeset viewer.