Make WordPress Core

Ticket #50822: 50822.diff

File 50822.diff, 10.3 KB (added by pbiron, 5 years ago)
  • src/wp-admin/includes/class-wp-debug-data.php

    From 04373e6772d55e73474503407fcdeaacea290297 Mon Sep 17 00:00:00 2001
    From: Paul Biron <paul@sparrowhawkcomputing.com>
    Date: Fri, 31 Jul 2020 13:05:39 -0600
    Subject: [PATCH] Site Health: Apply `auto_update_{plugin,theme}` when
     constructing the strings for displaying whether auto-updates are
     enabled/disabled.
    
    ---
     src/wp-admin/includes/class-wp-debug-data.php | 189 +++++++++++++-----
     1 file changed, 144 insertions(+), 45 deletions(-)
    
    diff --git a/src/wp-admin/includes/class-wp-debug-data.php b/src/wp-admin/includes/class-wp-debug-data.php
    index 24ca2bdfd2..eb5977bc0f 100644
    a b class WP_Debug_Data { 
    947947                        }
    948948
    949949                        if ( $auto_updates_enabled ) {
    950                                 if ( in_array( $plugin_path, $auto_updates, true ) ) {
     950                                if ( isset( $plugin_updates[ $plugin_path ]->update ) ) {
     951                                        $item = $plugin_updates[ $plugin_path ]->update;
     952                                } else {
     953                                        $item = (object) array(
     954                                                'id'            => $plugin_path,
     955                                                'slug'          => ! empty( basename( $plugin_path ) ) ? basename( $plugin_path ) : $plugin_path,
     956                                                'plugin'        => $plugin_path,
     957                                                'new_version'   => $plugin['Version'],
     958                                                'url'           => '',
     959                                                'package'       => '',
     960                                                'icons'         => array(),
     961                                                'banners'       => array(),
     962                                                'banners_rtl'   => array(),
     963                                                'tested'        => '',
     964                                                'requires_php'  => '',
     965                                                'compatibility' => new stdClass(),
     966                                        );
     967                                }
     968
     969                                /** This action is documented in wp-admin/includes/class-wp-automatic-updater.php */
     970                                $auto_update_forced = apply_filters( 'auto_update_plugin', null, $item );
     971
     972                                if ( ! is_null( $auto_update_forced ) ) {
     973                                        $enabled = $auto_update_forced;
     974                                } else {
     975                                        $enabled = in_array( $plugin_path, $auto_updates, true );
     976                                }
     977
     978                                if ( $enabled ) {
    951979                                        $auto_updates_string = __( 'Auto-updates enabled' );
    952                                         $enabled             = true;
    953 
    954                                         /**
    955                                          * Filters the text string of the auto-updates setting for each plugin in the Site Health debug data.
    956                                          *
    957                                          * @since 5.5.0
    958                                          *
    959                                          * @param string $auto_updates_string The string output for the auto-updates column.
    960                                          * @param string $plugin_path         The path to the plugin file.
    961                                          * @param array  $plugin              An array of plugin data.
    962                                          * @param bool   $enabled             Whether auto-updates are enabled for this item.
    963                                          */
    964                                         $auto_updates_string = apply_filters( 'plugin_auto_update_debug_string', $auto_updates_string, $plugin_path, $plugin, $enabled );
    965980                                } else {
    966981                                        $auto_updates_string = __( 'Auto-updates disabled' );
    967                                         $enabled             = false;
    968 
    969                                         /** This filter is documented in wp-admin/includes/class-wp-debug-data.php */
    970                                         $auto_updates_string = apply_filters( 'plugin_auto_update_debug_string', $auto_updates_string, $plugin_path, $plugin, $enabled );
    971982                                }
    972983
     984                                /**
     985                                 * Filters the text string of the auto-updates setting for each plugin in the Site Health debug data.
     986                                 *
     987                                 * @since 5.5.0
     988                                 *
     989                                 * @param string $auto_updates_string The string output for the auto-updates column.
     990                                 * @param string $plugin_path         The path to the plugin file.
     991                                 * @param array  $plugin              An array of plugin data.
     992                                 * @param bool   $enabled             Whether auto-updates are enabled for this item.
     993                                 */
     994                                $auto_updates_string = apply_filters( 'plugin_auto_update_debug_string', $auto_updates_string, $plugin_path, $plugin, $enabled );
     995
    973996                                $plugin_version_string       .= ' | ' . $auto_updates_string;
    974997                                $plugin_version_string_debug .= ', ' . $auto_updates_string;
    975998                        }
    class WP_Debug_Data { 
    10701093                );
    10711094
    10721095                if ( $auto_updates_enabled ) {
    1073                         if ( in_array( $active_theme->stylesheet, $auto_updates, true ) ) {
    1074                                 $auto_updates_string = __( 'Enabled' );
    1075                                 $enabled             = true;
     1096                        if ( isset( $theme_updates[ $active_theme->stylesheet ]->update ) ) {
     1097                                $item = $theme_updates[ $active_theme->stylesheet ]->update;
     1098                        } else {
     1099                                $item = (object) array(
     1100                                        'theme'        => $active_theme->stylesheet,
     1101                                        'new_version'  => $active_theme->version,
     1102                                        'url'          => '',
     1103                                        'package'      => '',
     1104                                        'requires'     => '',
     1105                                        'requires_php' => '',
     1106                                );
     1107                        }
    10761108
    1077                                 /**
    1078                                  * Filters the text string of the auto-updates setting for each theme in the Site Health debug data.
    1079                                  *
    1080                                  * @since 5.5.0
    1081                                  *
    1082                                  * @param string   $auto_updates_string The string output for the auto-updates column.
    1083                                  * @param WP_Theme $theme               An object of theme data.
    1084                                  * @param bool     $enabled             Whether auto-updates are enabled for this item.
    1085                                  */
    1086                                 $auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $active_theme, $enabled );
     1109                        /** This action is documented in wp-admin/includes/class-wp-automatic-updater.php */
     1110                        $auto_update_forced = apply_filters( 'auto_update_theme', null, $item );
     1111
     1112                        if ( ! is_null( $auto_update_forced ) ) {
     1113                                $enabled = $auto_update_forced;
    10871114                        } else {
    1088                                 $auto_updates_string = __( 'Disabled' );
    1089                                 $enabled             = false;
     1115                                $enabled = in_array( $active_theme->stylesheet, $auto_updates, true );
     1116                        }
    10901117
    1091                                 /** This filter is documented in wp-admin/includes/class-wp-debug-data.php */
    1092                                 $auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $active_theme, $enabled );
     1118                        if ( $enabled ) {
     1119                                $auto_updates_string = __( 'Enabled' );
     1120                        } else {
     1121                                $auto_updates_string = __( 'Disabled' );
    10931122                        }
    10941123
     1124                        /**
     1125                         * Filters the text string of the auto-updates setting for each theme in the Site Health debug data.
     1126                         *
     1127                         * @since 5.5.0
     1128                         *
     1129                         * @param string   $auto_updates_string The string output for the auto-updates column.
     1130                         * @param WP_Theme $theme               An object of theme data.
     1131                         * @param bool     $enabled             Whether auto-updates are enabled for this item.
     1132                         */
     1133                        $auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $active_theme, $enabled );
     1134
    10951135                        $info['wp-active-theme']['fields']['auto_update'] = array(
    10961136                                'label' => __( 'Auto-updates' ),
    10971137                                'value' => $auto_updates_string,
    class WP_Debug_Data { 
    11441184                                        'value' => get_template_directory(),
    11451185                                ),
    11461186                        );
     1187
    11471188                        if ( $auto_updates_enabled ) {
    1148                                 if ( in_array( $parent_theme->stylesheet, $auto_updates, true ) ) {
     1189                                if ( isset( $theme_updates[ $parent_theme->stylesheet ]->update ) ) {
     1190                                        $item = $theme_updates[ $parent_theme->stylesheet ]->update;
     1191                                } else {
     1192                                        $item = (object) array(
     1193                                                'theme'        => $parent_theme->stylesheet,
     1194                                                'new_version'  => $parent_theme->version,
     1195                                                'url'          => '',
     1196                                                'package'      => '',
     1197                                                'requires'     => '',
     1198                                                'requires_php' => '',
     1199                                        );
     1200                                }
     1201
     1202                                /** This action is documented in wp-admin/includes/class-wp-automatic-updater.php */
     1203                                $auto_update_forced = apply_filters( 'auto_update_theme', null, $item );
     1204
     1205                                if ( ! is_null( $auto_update_forced ) ) {
     1206                                        $enabled = $auto_update_forced;
     1207                                } else {
     1208                                        $enabled = in_array( $parent_theme->stylesheet, $auto_updates, true );
     1209                                }
     1210
     1211                                if ( $enabled ) {
    11491212                                        $parent_theme_auto_update_string = __( 'Enabled' );
    11501213                                } else {
    11511214                                        $parent_theme_auto_update_string = __( 'Disabled' );
    11521215                                }
    11531216
     1217                                /**
     1218                                 * Filters the text string of the auto-updates setting for each theme in the Site Health debug data.
     1219                                 *
     1220                                 * @since 5.5.0
     1221                                 *
     1222                                 * @param string   $auto_updates_string The string output for the auto-updates column.
     1223                                 * @param WP_Theme $theme               An object of theme data.
     1224                                 * @param bool     $enabled             Whether auto-updates are enabled for this item.
     1225                                 */
     1226                                $parent_theme_auto_update_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $parent_theme, $enabled );
     1227
    11541228                                $info['wp-parent-theme']['fields']['auto_update'] = array(
    11551229                                        'label' => __( 'Auto-update' ),
    11561230                                        'value' => $parent_theme_auto_update_string,
    class WP_Debug_Data { 
    12071281                        }
    12081282
    12091283                        if ( $auto_updates_enabled ) {
    1210                                 if ( in_array( $theme_slug, $auto_updates, true ) ) {
    1211                                         $auto_updates_string = __( 'Auto-updates enabled' );
    1212                                         $enabled             = true;
     1284                                if ( isset( $theme_updates[ $theme_slug ]->update ) ) {
     1285                                        $item = $theme_updates[ $theme_slug ]->update;
     1286                                } else {
     1287                                        $item = (object) array(
     1288                                                'theme'        => $theme_slug,
     1289                                                'new_version'  => $theme->version,
     1290                                                'url'          => '',
     1291                                                'package'      => '',
     1292                                                'requires'     => '',
     1293                                                'requires_php' => '',
     1294                                        );
     1295                                }
     1296
     1297                                /** This action is documented in wp-admin/includes/class-wp-automatic-updater.php */
     1298                                $auto_update_forced = apply_filters( 'auto_update_theme', null, $item );
    12131299
    1214                                         /** This filter is documented in wp-admin/includes/class-wp-debug-data.php */
    1215                                         $auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $theme, $enabled );
     1300                                if ( ! is_null( $auto_update_forced ) ) {
     1301                                        $enabled = $auto_update_forced;
    12161302                                } else {
    1217                                         $auto_updates_string = __( 'Auto-updates disabled' );
    1218                                         $enabled             = false;
     1303                                        $enabled = in_array( $theme_slug, $auto_updates, true );
     1304                                }
    12191305
    1220                                         /** This filter is documented in wp-admin/includes/class-wp-debug-data.php */
    1221                                         $auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $theme, $enabled );
     1306                                if ( $enabled ) {
     1307                                        $auto_updates_string = __( 'Auto-updates enabled' );
     1308                                } else {
     1309                                        $auto_updates_string = __( 'Auto-updates disabled' );
    12221310                                }
    12231311
     1312                                /**
     1313                                 * Filters the text string of the auto-updates setting for each theme in the Site Health debug data.
     1314                                 *
     1315                                 * @since 5.5.0
     1316                                 *
     1317                                 * @param string   $auto_updates_string The string output for the auto-updates column.
     1318                                 * @param WP_Theme $theme               An object of theme data.
     1319                                 * @param bool     $enabled             Whether auto-updates are enabled for this item.
     1320                                 */
     1321                                $auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $theme, $enabled );
     1322
    12241323                                $theme_version_string       .= ' | ' . $auto_updates_string;
    12251324                                $theme_version_string_debug .= ',' . $auto_updates_string;
    12261325                        }