From 5d8955f8181ddd29bca0ef0704845c1b61f5a684 Mon Sep 17 00:00:00 2001 From: Colin Stewart Date: Tue, 13 Feb 2024 12:05:00 +0000 Subject: [PATCH] Plugins: Only set card button status on plugin install pages. Previously, the `setCardButtonStatus()` JS function was called when a card had the ID 'plugin-information-footer'. However, the card will only exist on plugin install pages. This caused a failure when updating plugins from the plugin row on `plugins.php` due to an undefined `$card` variable. This adds a guard to ensure that the current page is one of the plugin install pages, preventing the error and allowing plugin updates from the `plugins.php` rows to work as expected. Follow-up to [57545]. Props Presskopp, huzaifaalmesbah, krupajnanda, hellofromTonya, krupalpanchal, costdev. Fixes #60521. git-svn-id: https://develop.svn.wordpress.org/trunk@57615 602fd350-edb4-49c9-b593-d223f7449a82 --- src/js/_enqueues/wp/updates.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/js/_enqueues/wp/updates.js b/src/js/_enqueues/wp/updates.js index a11f47ab54..b8b36c166f 100644 --- a/src/js/_enqueues/wp/updates.js +++ b/src/js/_enqueues/wp/updates.js @@ -478,7 +478,8 @@ wp.updates.updatePlugin = function( args ) { var $updateRow, $card, $message, message, $adminBarUpdates = $( '#wp-admin-bar-updates' ), - buttonText = __( 'Updating...' ); + buttonText = __( 'Updating...' ), + isPluginInstall = 'plugin-install' === pagenow || 'plugin-install-network' === pagenow; args = _.extend( { success: wp.updates.updatePluginSuccess, @@ -493,7 +494,7 @@ _x( 'Updating %s...', 'plugin' ), $updateRow.find( '.plugin-title strong' ).text() ); - } else if ( 'plugin-install' === pagenow || 'plugin-install-network' === pagenow ) { + } else if ( isPluginInstall ) { $card = $( '.plugin-card-' + args.slug + ', #plugin-information-footer' ); $message = $card.find( '.update-now' ).addClass( 'updating-message' ); message = sprintf( @@ -518,7 +519,7 @@ $document.trigger( 'wp-plugin-updating', args ); - if ( 'plugin-information-footer' === $card.attr('id' ) ) { + if ( isPluginInstall && 'plugin-information-footer' === $card.attr( 'id' ) ) { wp.updates.setCardButtonStatus( { status: 'updating-plugin',