WordPress.org

Make WordPress Core

Ticket #50280: 50280.4.diff

File 50280.4.diff, 7.1 KB (added by azaozz, 6 months ago)
  • src/wp-admin/includes/class-wp-ms-themes-list-table.php

     
    742742
    743743                $url = add_query_arg( $query_args, 'themes.php' );
    744744
    745                 printf(
     745                $html[] = sprintf(
    746746                        '<a href="%s" class="toggle-auto-update" data-wp-action="%s">',
    747747                        wp_nonce_url( $url, 'updates' ),
    748748                        $action
    749749                );
    750750
    751                 echo '<span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>';
    752                 echo '<span class="label">' . $text . '</span>';
    753                 echo '</a>';
     751                $html[] = '<span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>';
     752                $html[] = '<span class="label">' . $text . '</span>';
     753                $html[] = '</a>';
    754754
    755755                $available_updates = get_site_transient( 'update_themes' );
    756756                if ( isset( $available_updates->response[ $stylesheet ] ) ) {
    757                         printf(
     757                        $html[] = sprintf(
    758758                                '<div class="auto-update-time%s">%s</div>',
    759759                                $time_class,
    760760                                wp_get_auto_update_message()
    761761                        );
    762762                }
     763
     764                $html = implode( '', $html );
     765
     766                /**
     767                 * Filters the HTML of the auto-updates setting for each theme in the Themes list table.
     768                 *
     769                 * @since 5.5.0
     770                 *
     771                 * @param string   $html       The HTML for theme’s auto-update setting including toggle auto-update action link
     772                 *                             and time to next update.
     773                 * @param string   $stylesheet Directory name of the theme.
     774                 * @param WP_Theme $theme      WP_Theme object.
     775                 */
     776                echo apply_filters( 'theme_auto_update_setting_html', $html, $stylesheet, $theme );
     777
    763778                echo '<div class="auto-updates-error inline notice error hidden"><p></p></div>';
    764779        }
    765780
  • src/wp-admin/includes/class-wp-plugins-list-table.php

     
    10411041
    10421042                                        echo "<td class='column-auto-updates{$extra_classes}'>";
    10431043
     1044                                        $html = array();
     1045
    10441046                                        if ( in_array( $plugin_file, $auto_updates, true ) ) {
    10451047                                                $text       = __( 'Disable auto-updates' );
    10461048                                                $action     = 'disable';
     
    10601062
    10611063                                        $url = add_query_arg( $query_args, 'plugins.php' );
    10621064
    1063                                         printf(
     1065                                        $html[] = sprintf(
    10641066                                                '<a href="%s" class="toggle-auto-update" data-wp-action="%s">',
    10651067                                                wp_nonce_url( $url, 'updates' ),
    10661068                                                $action
    10671069                                        );
    10681070
    1069                                         echo '<span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>';
    1070                                         echo '<span class="label">' . $text . '</span>';
    1071                                         echo '</a>';
     1071                                        $html[] = '<span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>';
     1072                                        $html[] = '<span class="label">' . $text . '</span>';
     1073                                        $html[] = '</a>';
    10721074
    10731075                                        $available_updates = get_site_transient( 'update_plugins' );
    10741076
    10751077                                        if ( isset( $available_updates->response[ $plugin_file ] ) ) {
    1076                                                 printf(
     1078                                                $html[] = sprintf(
    10771079                                                        '<div class="auto-update-time%s">%s</div>',
    10781080                                                        $time_class,
    10791081                                                        wp_get_auto_update_message()
     
    10801082                                                );
    10811083                                        }
    10821084
     1085                                        $html = implode( '', $html );
     1086
     1087                                        /**
     1088                                         * Filters the HTML of the auto-updates setting for each plugin in the Plugins list table.
     1089                                         *
     1090                                         * @since 5.5.0
     1091                                         *
     1092                                         * @param string $html        The HTML of the plugin's auto-update column content,
     1093                                         *                            including toggle auto-update action links and time to next update.
     1094                                         * @param string $plugin_file Path to the plugin file relative to the plugins directory.
     1095                                         * @param array  $plugin_data An array of plugin data.
     1096                                         */
     1097                                        echo apply_filters( 'plugin_auto_update_setting_html', $html, $plugin_file, $plugin_data );
     1098
     1099
    10831100                                        echo '<div class="inline notice error hidden"><p></p></div>';
    10841101                                        echo '</td>';
    10851102
  • src/wp-admin/themes.php

     
    549549</div><!-- .wrap -->
    550550
    551551<?php
     552
     553/**
     554 * Returns the template for displaying the auto-update setting for a theme.
     555 *
     556 * @since 5.5.0
     557 *
     558 * @return string Template
     559 */
     560function wp_theme_auto_update_setting_template() {
     561        $template = '
     562                <p class="theme-autoupdate">
     563                        <# if ( data.autoupdate ) { #>
     564                                <a href="{{{ data.actions.autoupdate }}}" class="toggle-auto-update" data-slug="{{ data.id }}" data-wp-action="disable">
     565                                        <span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>
     566                                        <span class="label">' . __( 'Disable auto-updates' ) . '</span>
     567                                </a>
     568                        <# } else { #>
     569                                <a href="{{{ data.actions.autoupdate }}}" class="toggle-auto-update" data-slug="{{ data.id }}" data-wp-action="enable">
     570                                        <span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>
     571                                        <span class="label">' . __( 'Enable auto-updates' ) . '</span>
     572                                </a>
     573                        <# } #>
     574                        <# if ( data.hasUpdate ) { #>
     575                                <# if ( data.autoupdate ) { #>
     576                                        <span class="auto-update-time">
     577                                <# } else { #>
     578                                        <span class="auto-update-time hidden">
     579                                <# } #>
     580                                <br />' . wp_get_auto_update_message() . '</span>
     581                        <# } #>
     582                        <span class="auto-updates-error hidden"><p></p></span>
     583                </p>
     584        ';
     585
     586        /**
     587         * Filters the JavaScript template used in Backbone to display the auto-update setting for a theme (in the overlay).
     588         *
     589         * See {@see wp_prepare_themes_for_js()} for the properties of the `data` object.
     590         *
     591         * @since 5.5.0
     592         *
     593         * @param string $template The template for displaying the auto-update setting link.
     594         */
     595        return apply_filters( 'theme_auto_update_setting_template', $template );
     596}
     597
    552598/*
    553599 * The tmpl-theme template is synchronized with PHP above!
    554600 */
     
    648694                                </p>
    649695
    650696                                <# if ( data.actions.autoupdate ) { #>
    651                                 <p class="theme-autoupdate">
    652                                 <# if ( data.autoupdate ) { #>
    653                                         <a href="{{{ data.actions.autoupdate }}}" class="toggle-auto-update" data-slug="{{ data.id }}" data-wp-action="disable">
    654                                                 <span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>
    655                                                 <span class="label"><?php _e( 'Disable auto-updates' ); ?></span>
    656                                         </a>
    657                                 <# } else { #>
    658                                         <a href="{{{ data.actions.autoupdate }}}" class="toggle-auto-update" data-slug="{{ data.id }}" data-wp-action="enable">
    659                                                 <span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>
    660                                                 <span class="label"><?php _e( 'Enable auto-updates' ); ?></span>
    661                                         </a>
     697                                        <?php echo wp_theme_auto_update_setting_template(); ?>
    662698                                <# } #>
    663                                 <# if ( data.hasUpdate ) { #>
    664                                         <# if ( data.autoupdate) { #>
    665                                         <span class="auto-update-time"><br /><?php echo wp_get_auto_update_message(); ?></span>
    666                                         <# } else { #>
    667                                         <span class="auto-update-time hidden"><br /><?php echo wp_get_auto_update_message(); ?></span>
    668                                         <# } #>
    669                                 <# } #>
    670                                         <span class="auto-updates-error hidden"><p></p></span>
    671                                 </p>
    672                                 <# } #>
    673699
    674700                                <# if ( data.hasUpdate ) { #>
    675701                                <div class="notice notice-warning notice-alt notice-large">