Make WordPress Core

Ticket #33932: patch.5.diff

File patch.5.diff, 3.7 KB (added by ronalfy, 9 years ago)

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

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

     
    34563456         */
    34573457        protected function send_debug_email() {
    34583458                $update_count = 0;
    3459                 foreach ( $this->update_results as $type => $updates )
     3459                $update_results = $this->update_results;
     3460                foreach ( $update_results as $type => $updates )
    34603461                        $update_count += count( $updates );
    34613462
    34623463                $body = array();
     
    34653466                $body[] = sprintf( __( 'WordPress site: %s' ), network_home_url( '/' ) );
    34663467
    34673468                // Core
    3468                 if ( isset( $this->update_results['core'] ) ) {
    3469                         $result = $this->update_results['core'][0];
     3469                if ( isset( $update_results['core'] ) ) {
     3470                        $result = $update_results['core'][0];
    34703471                        if ( $result->result && ! is_wp_error( $result->result ) ) {
    34713472                                $body[] = sprintf( __( 'SUCCESS: WordPress was successfully updated to %s' ), $result->name );
    34723473                        } else {
     
    34783479
    34793480                // Plugins, Themes, Translations
    34803481                foreach ( array( 'plugin', 'theme', 'translation' ) as $type ) {
    3481                         if ( ! isset( $this->update_results[ $type ] ) )
     3482                       
     3483                        /**
     3484                        * Filter to receive notification emails on plugins/themes/translation.
     3485                        *
     3486                        * By default, administrators are notified when the update offer received
     3487                        * from WordPress.org sets a particular flag. This allows some discretion
     3488                        * in if and when to notify.
     3489                        *
     3490                        * This filter is only evaluated once per plugin update
     3491                        *.
     3492                        *
     3493                        * @since 4.5.0
     3494                         *
     3495                        * @param bool   $notify Whether the site administrator is notified.
     3496                        * @param string $type   The type of update (plugin, theme, translation).
     3497                        * @param object $this WP_Automatic_Updater instance
     3498                         */
     3499                        if ( !apply_filters( 'send_update_notification_email', true, $type, $this ) ) {
     3500                                if ( isset( $update_results[ $type ] ) ) {
     3501                                        unset( $update_results[ $type ] );
     3502                                }
     3503                        }
     3504                       
     3505                        if ( ! isset( $update_results[ $type ] ) )
    34823506                                continue;
    3483                         $success_items = wp_list_filter( $this->update_results[ $type ], array( 'result' => true ) );
     3507                        $success_items = wp_list_filter( $update_results[ $type ], array( 'result' => true ) );
    34843508                        if ( $success_items ) {
    34853509                                $messages = array(
    34863510                                        'plugin'      => __( 'The following plugins were successfully updated:' ),
     
    34933517                                        $body[] = ' * ' . sprintf( __( 'SUCCESS: %s' ), $name );
    34943518                                }
    34953519                        }
    3496                         if ( $success_items != $this->update_results[ $type ] ) {
     3520                        if ( $success_items != $update_results[ $type ] ) {
    34973521                                // Failed updates
    34983522                                $messages = array(
    34993523                                        'plugin'      => __( 'The following plugins failed to update:' ),
     
    35023526                                );
    35033527
    35043528                                $body[] = $messages[ $type ];
    3505                                 foreach ( $this->update_results[ $type ] as $item ) {
     3529                                foreach ( $update_results[ $type ] as $item ) {
    35063530                                        if ( ! $item->result || is_wp_error( $item->result ) ) {
    35073531                                                $body[] = ' * ' . sprintf( __( 'FAILED: %s' ), $item->name );
    35083532                                                $failures++;
     
    35103534                                }
    35113535                        }
    35123536                        $body[] = '';
     3537                       
    35133538                }
    3514 
     3539                if ( empty( $update_results ) ) {
     3540                        return;
     3541                }
     3542               
    35153543                $site_title = wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
    35163544                if ( $failures ) {
    35173545                        $body[] = trim( __(
     
    35383566                $body[] = '';
    35393567
    35403568                foreach ( array( 'core', 'plugin', 'theme', 'translation' ) as $type ) {
    3541                         if ( ! isset( $this->update_results[ $type ] ) )
     3569                        if ( ! isset( $update_results[ $type ] ) )
    35423570                                continue;
    3543                         foreach ( $this->update_results[ $type ] as $update ) {
     3571                        foreach ( $update_results[ $type ] as $update ) {
    35443572                                $body[] = $update->name;
    35453573                                $body[] = str_repeat( '-', strlen( $update->name ) );
    35463574                                foreach ( $update->messages as $message )