From 45432f4c393da7b1adfb6f707264e9902600794d Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 15 Oct 2020 23:25:19 +0000 Subject: [PATCH] Upgrade/Install: Check if plugin or theme update results are available before applying the notification filters. This avoids a PHP notice for an undefined index of either `plugin` or `theme` in the `auto_{plugin|theme}_update_send_email` filter hook. Props afragen, audrasjb. Fixes #51400. git-svn-id: https://develop.svn.wordpress.org/trunk@49166 602fd350-edb4-49c9-b593-d223f7449a82 --- .../includes/class-wp-automatic-updater.php | 68 ++++++++++--------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/src/wp-admin/includes/class-wp-automatic-updater.php b/src/wp-admin/includes/class-wp-automatic-updater.php index f55247c7e6..3ee4680e8a 100644 --- a/src/wp-admin/includes/class-wp-automatic-updater.php +++ b/src/wp-admin/includes/class-wp-automatic-updater.php @@ -892,44 +892,48 @@ class WP_Automatic_Updater { $successful_updates = array(); $failed_updates = array(); - /** - * Filters whether to send an email following an automatic background plugin update. - * - * @since 5.5.0 - * @since 5.5.1 Added the `$update_results` parameter. - * - * @param bool $enabled True if plugin update notifications are enabled, false otherwise. - * @param array $update_results The results of plugins update tasks. - */ - $notifications_enabled = apply_filters( 'auto_plugin_update_send_email', true, $update_results['plugin'] ); + if ( ! empty( $update_results['plugin'] ) ) { + /** + * Filters whether to send an email following an automatic background plugin update. + * + * @since 5.5.0 + * @since 5.5.1 Added the `$update_results` parameter. + * + * @param bool $enabled True if plugin update notifications are enabled, false otherwise. + * @param array $update_results The results of plugins update tasks. + */ + $notifications_enabled = apply_filters( 'auto_plugin_update_send_email', true, $update_results['plugin'] ); - if ( ! empty( $update_results['plugin'] ) && $notifications_enabled ) { - foreach ( $update_results['plugin'] as $update_result ) { - if ( true === $update_result->result ) { - $successful_updates['plugin'][] = $update_result; - } else { - $failed_updates['plugin'][] = $update_result; + if ( $notifications_enabled ) { + foreach ( $update_results['plugin'] as $update_result ) { + if ( true === $update_result->result ) { + $successful_updates['plugin'][] = $update_result; + } else { + $failed_updates['plugin'][] = $update_result; + } } } } - /** - * Filters whether to send an email following an automatic background theme update. - * - * @since 5.5.0 - * @since 5.5.1 Added the `$update_results` parameter. - * - * @param bool $enabled True if theme update notifications are enabled, false otherwise. - * @param array $update_results The results of theme update tasks. - */ - $notifications_enabled = apply_filters( 'auto_theme_update_send_email', true, $update_results['theme'] ); + if ( ! empty( $update_results['theme'] ) ) { + /** + * Filters whether to send an email following an automatic background theme update. + * + * @since 5.5.0 + * @since 5.5.1 Added the `$update_results` parameter. + * + * @param bool $enabled True if theme update notifications are enabled, false otherwise. + * @param array $update_results The results of theme update tasks. + */ + $notifications_enabled = apply_filters( 'auto_theme_update_send_email', true, $update_results['theme'] ); - if ( ! empty( $update_results['theme'] ) && $notifications_enabled ) { - foreach ( $update_results['theme'] as $update_result ) { - if ( true === $update_result->result ) { - $successful_updates['theme'][] = $update_result; - } else { - $failed_updates['theme'][] = $update_result; + if ( $notifications_enabled ) { + foreach ( $update_results['theme'] as $update_result ) { + if ( true === $update_result->result ) { + $successful_updates['theme'][] = $update_result; + } else { + $failed_updates['theme'][] = $update_result; + } } } }