diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-admin/includes/class-bulk-upgrader-skin.php --- a/wp/wp-admin/includes/class-bulk-upgrader-skin.php Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-admin/includes/class-bulk-upgrader-skin.php Fri Sep 05 18:40:08 2025 +0200 @@ -16,13 +16,30 @@ * @see WP_Upgrader_Skin */ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin { + + /** + * Whether the bulk update process has started. + * + * @since 3.0.0 + * @var bool + */ public $in_loop = false; + /** + * Stores an error message about the update. + * + * @since 3.0.0 * @var string|false */ public $error = false; /** + * Constructor. + * + * Sets up the generic skin for the Bulk Upgrader classes. + * + * @since 3.0.0 + * * @param array $args */ public function __construct( $args = array() ) { @@ -36,6 +53,9 @@ } /** + * Sets up the strings used in the update process. + * + * @since 3.0.0 */ public function add_strings() { $this->upgrader->strings['skin_upgrade_start'] = __( 'The update process is starting. This process may take a while on some hosts, so please be patient.' ); @@ -49,6 +69,9 @@ } /** + * Displays a message about the update. + * + * @since 3.0.0 * @since 5.9.0 Renamed `$string` (a PHP reserved keyword) to `$feedback` for PHP 8 named parameter support. * * @param string $feedback Message data. @@ -59,7 +82,7 @@ $feedback = $this->upgrader->strings[ $feedback ]; } - if ( strpos( $feedback, '%' ) !== false ) { + if ( str_contains( $feedback, '%' ) ) { if ( $args ) { $args = array_map( 'strip_tags', $args ); $args = array_map( 'esc_html', $args ); @@ -77,18 +100,27 @@ } /** + * Displays the header before the update process. + * + * @since 3.0.0 */ public function header() { - // Nothing, This will be displayed within a iframe. + // Nothing. This will be displayed within an iframe. } /** + * Displays the footer following the update process. + * + * @since 3.0.0 */ public function footer() { - // Nothing, This will be displayed within a iframe. + // Nothing. This will be displayed within an iframe. } /** + * Displays an error message about the update. + * + * @since 3.0.0 * @since 5.9.0 Renamed `$error` to `$errors` for PHP 8 named parameter support. * * @param string|WP_Error $errors Errors. @@ -113,40 +145,60 @@ } /** + * Displays the header before the bulk update process. + * + * @since 3.0.0 */ public function bulk_header() { $this->feedback( 'skin_upgrade_start' ); } /** + * Displays the footer following the bulk update process. + * + * @since 3.0.0 */ public function bulk_footer() { $this->feedback( 'skin_upgrade_end' ); } /** + * Performs an action before a bulk update. + * + * @since 3.0.0 + * * @param string $title */ public function before( $title = '' ) { $this->in_loop = true; printf( '

' . $this->upgrader->strings['skin_before_update_header'] . '

', $title, $this->upgrader->update_current, $this->upgrader->update_count ); echo ''; - // This progress messages div gets moved via JavaScript when clicking on "Show details.". + // This progress messages div gets moved via JavaScript when clicking on "More details.". echo '

'; $this->flush_output(); } /** + * Performs an action following a bulk update. + * + * @since 3.0.0 + * * @param string $title */ public function after( $title = '' ) { echo '

'; if ( $this->error || ! $this->result ) { if ( $this->error ) { - echo '

' . sprintf( $this->upgrader->strings['skin_update_failed_error'], $title, '' . $this->error . '' ) . '

'; + $after_error_message = sprintf( $this->upgrader->strings['skin_update_failed_error'], $title, '' . $this->error . '' ); } else { - echo '

' . sprintf( $this->upgrader->strings['skin_update_failed'], $title ) . '

'; + $after_error_message = sprintf( $this->upgrader->strings['skin_update_failed'], $title ); } + wp_admin_notice( + $after_error_message, + array( + 'additional_classes' => array( 'error' ), + ) + ); echo ''; } @@ -154,7 +206,7 @@ if ( ! $this->error ) { echo '
' . '

' . sprintf( $this->upgrader->strings['skin_update_successful'], $title ) . - ' ' . + ' ' . '

'; } @@ -166,6 +218,9 @@ } /** + * Resets the properties used in the update process. + * + * @since 3.0.0 */ public function reset() { $this->in_loop = false; @@ -173,6 +228,9 @@ } /** + * Flushes all output buffers. + * + * @since 3.0.0 */ public function flush_output() { wp_ob_end_flush_all();