WordPress.org

Make WordPress Core

Ticket #23311: 23311.2.diff

File 23311.2.diff, 2.8 KB (added by iandunn, 15 months ago)

Creates new class extending PHPMailer

  • wp-includes/class-wp-phpmailer.php

     
     1<?php 
     2/** 
     3 * PHPMailer extensions for WordPress 
     4 * 
     5 * @package WordPress 
     6 */ 
     7 
     8/** 
     9 * PHPMailer child class 
     10 * 
     11 * Overrides the internationalization method in order to use WordPress' instead. 
     12 * 
     13 * @package WordPress 
     14 * @since 3.6 
     15 */ 
     16class WP_PHPMailer extends PHPMailer { 
     17        /** 
     18         * Public constructor 
     19         * @param bool $exceptions If true exceptions will be thrown 
     20         * @access public 
     21         */ 
     22        function __construct( $exceptions = false ) { 
     23                parent::__construct( $exceptions ); 
     24        $this->SetLanguage(); 
     25        } 
     26         
     27        /** 
     28         * Defines the error messages using WordPress' internationalization method. 
     29         * @access public 
     30         * @return bool Always returns true in order to mimic PHPMailer's SetLanguage() behavior 
     31         */ 
     32        function SetLanguage() { 
     33                $error_strings = array( 
     34                        'provide_address'               => __( 'You must provide at least one recipient email address.' ), 
     35                        'mailer_not_supported'  => __( ' mailer is not supported.' ), 
     36                        'execute'                               => __( 'Could not execute: ' ), 
     37                        'instantiate'                   => __( 'Could not instantiate mail function.' ), 
     38                        'authenticate'                  => __( 'SMTP Error: Could not authenticate.' ), 
     39                        'from_failed'                   => __( 'The following From address failed: ' ), 
     40                        'recipients_failed'             => __( 'SMTP Error: The following recipients failed: ' ), 
     41                        'data_not_accepted'             => __( 'SMTP Error: Data not accepted.' ), 
     42                        'connect_host'                  => __( 'SMTP Error: Could not connect to SMTP host.' ), 
     43                        'file_access'                   => __( 'Could not access file: ' ), 
     44                        'file_open'                             => __( 'File Error: Could not open file: ' ), 
     45                        'encoding'                              => __( 'Unknown encoding: ' ), 
     46                        'signing'                               => __( 'Signing Error: ' ), 
     47                        'smtp_error'                    => __( 'SMTP server error: ' ), 
     48                        'empty_message'                 => __( 'Message body empty' ), 
     49                        'invalid_address'               => __( 'Invalid address' ), 
     50                        'variable_set'                  => __( 'Cannot set or reset variable: ' ) 
     51                ); 
     52 
     53                $this->language = $error_strings; 
     54                return true; 
     55        } 
     56} 
     57 No newline at end of file 
  • wp-includes/pluggable.php

     
    221221        global $phpmailer; 
    222222 
    223223        // (Re)create it, if it's gone missing 
    224         if ( !is_object( $phpmailer ) || !is_a( $phpmailer, 'PHPMailer' ) ) { 
     224        if ( !is_object( $phpmailer ) || !is_a( $phpmailer, 'WP_PHPMailer' ) ) { 
    225225                require_once ABSPATH . WPINC . '/class-phpmailer.php'; 
    226226                require_once ABSPATH . WPINC . '/class-smtp.php'; 
    227                 $phpmailer = new PHPMailer( true ); 
     227                require_once ABSPATH . WPINC . '/class-wp-phpmailer.php'; 
     228                $phpmailer = new WP_PHPMailer( true ); 
    228229        } 
    229230 
    230231        // Headers