Make WordPress Core

Ticket #33932: 33932.2.patch

File 33932.2.patch, 3.7 KB (added by ronalfy, 8 years ago)

Filter to disable e-mails for plugins, themes, and translations

  • src/wp-admin/includes/class-wp-upgrader.php

     
    34723472         */
    34733473        protected function send_debug_email() {
    34743474                $update_count = 0;
    3475                 foreach ( $this->update_results as $type => $updates )
     3475                $update_results = $this->update_results;
     3476                foreach ( $update_results as $type => $updates )
    34763477                        $update_count += count( $updates );
    34773478
    34783479                $body = array();
     
    34813482                $body[] = sprintf( __( 'WordPress site: %s' ), network_home_url( '/' ) );
    34823483
    34833484                // Core
    3484                 if ( isset( $this->update_results['core'] ) ) {
    3485                         $result = $this->update_results['core'][0];
     3485                if ( isset( $update_results['core'] ) ) {
     3486                        $result = $update_results['core'][0];
    34863487                        if ( $result->result && ! is_wp_error( $result->result ) ) {
    34873488                                $body[] = sprintf( __( 'SUCCESS: WordPress was successfully updated to %s' ), $result->name );
    34883489                        } else {
     
    34943495
    34953496                // Plugins, Themes, Translations
    34963497                foreach ( array( 'plugin', 'theme', 'translation' ) as $type ) {
    3497                         if ( ! isset( $this->update_results[ $type ] ) )
    3498                                 continue;
    3499                         $success_items = wp_list_filter( $this->update_results[ $type ], array( 'result' => true ) );
     3498
     3499                        /** 
     3500                         * Filter whether to disable debug notification emails on plugins/themes/translation.
     3501                         *
     3502                         * By default, WordPress administrators are sent a debug e-mail for
     3503                         * automatic updates or when in development mode. This filter is
     3504                         * primarly used to disable automatic update notification e-mails
     3505                         * per type of update.
     3506                         *
     3507                         * @since 4.6.0
     3508                         *
     3509                         * @param bool   $notify Whether the site administrator is notified.
     3510                         * @param string $type   The type of update (plugin, theme, translation).
     3511                         * @param object $this   WP_Automatic_Updater instance. 
     3512                         */ 
     3513                        if ( ! apply_filters( 'send_debug_notification_email', true, $type, $this ) ) {
     3514                                if ( isset( $update_results[ $type ] ) ) {
     3515                                        unset( $update_results[ $type ] );
     3516                                } 
     3517                        } 
     3518
     3519                        if ( ! isset( $update_results[ $type ] ) )
     3520                                continue;
     3521
     3522                        $success_items = wp_list_filter( $update_results[ $type ], array( 'result' => true ) );
    35003523                        if ( $success_items ) {
    35013524                                $messages = array(
    35023525                                        'plugin'      => __( 'The following plugins were successfully updated:' ),
     
    35093532                                        $body[] = ' * ' . sprintf( __( 'SUCCESS: %s' ), $name );
    35103533                                }
    35113534                        }
    3512                         if ( $success_items != $this->update_results[ $type ] ) {
     3535                        if ( $success_items != $update_results[ $type ] ) {
    35133536                                // Failed updates
    35143537                                $messages = array(
    35153538                                        'plugin'      => __( 'The following plugins failed to update:' ),
     
    35183541                                );
    35193542
    35203543                                $body[] = $messages[ $type ];
    3521                                 foreach ( $this->update_results[ $type ] as $item ) {
     3544                                foreach ( $update_results[ $type ] as $item ) {
    35223545                                        if ( ! $item->result || is_wp_error( $item->result ) ) {
    35233546                                                $body[] = ' * ' . sprintf( __( 'FAILED: %s' ), $item->name );
    35243547                                                $failures++;
     
    35283551                        $body[] = '';
    35293552                }
    35303553
     3554                if ( empty( $update_results ) ) { 
     3555                        return;
     3556                }
     3557
    35313558                $site_title = wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
    35323559                if ( $failures ) {
    35333560                        $body[] = trim( __(
     
    35543581                $body[] = '';
    35553582
    35563583                foreach ( array( 'core', 'plugin', 'theme', 'translation' ) as $type ) {
    3557                         if ( ! isset( $this->update_results[ $type ] ) )
     3584                        if ( ! isset( $update_results[ $type ] ) )
    35583585                                continue;
    3559                         foreach ( $this->update_results[ $type ] as $update ) {
     3586
     3587                        foreach ( $update_results[ $type ] as $update ) {
    35603588                                $body[] = $update->name;
    35613589                                $body[] = str_repeat( '-', strlen( $update->name ) );
    35623590                                foreach ( $update->messages as $message )