From c97c33fb43d0cb1c0a5d78b029bc3b9a55994643 Mon Sep 17 00:00:00 2001 From: Mukesh Panchal Date: Tue, 1 Oct 2024 17:00:41 +0530 Subject: [PATCH 1/2] Query only required plugins --- .../includes/admin/plugins.php | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/plugins/performance-lab/includes/admin/plugins.php b/plugins/performance-lab/includes/admin/plugins.php index 5c146d3f1..c179d4547 100644 --- a/plugins/performance-lab/includes/admin/plugins.php +++ b/plugins/performance-lab/includes/admin/plugins.php @@ -21,7 +21,16 @@ function perflab_query_plugin_info( string $plugin_slug ) { $transient_key = 'perflab_plugins_info'; $plugins = get_transient( $transient_key ); - $fields = array( + + if ( is_array( $plugins ) ) { + // If the specific plugin_slug is not in the cache, return an error. + if ( ! isset( $plugins[ $plugin_slug ] ) ) { + return new WP_Error( 'plugin_not_found', __( 'Plugin not found.', 'performance-lab' ) ); + } + return $plugins[ $plugin_slug ]; // Return cached plugin info if found. + } + + $fields = array( 'name', 'slug', 'short_description', @@ -32,14 +41,6 @@ function perflab_query_plugin_info( string $plugin_slug ) { 'version', // Needed by install_plugin_install_status(). ); - if ( is_array( $plugins ) ) { - // If the specific plugin_slug is not in the cache, return an error. - if ( ! isset( $plugins[ $plugin_slug ] ) ) { - return new WP_Error( 'plugin_not_found', __( 'Plugin not found.', 'performance-lab' ) ); - } - return $plugins[ $plugin_slug ]; // Return cached plugin info if found. - } - // Proceed with API request since no cache hit. $response = plugins_api( 'query_plugins', @@ -69,6 +70,9 @@ function perflab_query_plugin_info( string $plugin_slug ) { $plugins = array(); foreach ( $response->plugins as $plugin_data ) { + if ( ! in_array( $plugin_data['slug'], perflab_get_standalone_plugins(), true ) ) { + continue; + } $plugins[ $plugin_data['slug'] ] = wp_array_slice_assoc( $plugin_data, $fields ); } From dc9f0e349a430b029141895784ad9e16222b9b2a Mon Sep 17 00:00:00 2001 From: Mukesh Panchal Date: Wed, 2 Oct 2024 10:24:07 +0530 Subject: [PATCH 2/2] Improve performance --- plugins/performance-lab/includes/admin/plugins.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/performance-lab/includes/admin/plugins.php b/plugins/performance-lab/includes/admin/plugins.php index c179d4547..882b337ef 100644 --- a/plugins/performance-lab/includes/admin/plugins.php +++ b/plugins/performance-lab/includes/admin/plugins.php @@ -68,9 +68,10 @@ function perflab_query_plugin_info( string $plugin_slug ) { return new WP_Error( 'no_plugins', __( 'No plugins found in the API response.', 'performance-lab' ) ); } - $plugins = array(); + $plugins = array(); + $standalone_plugins = array_flip( perflab_get_standalone_plugins() ); foreach ( $response->plugins as $plugin_data ) { - if ( ! in_array( $plugin_data['slug'], perflab_get_standalone_plugins(), true ) ) { + if ( ! isset( $standalone_plugins[ $plugin_data['slug'] ] ) ) { continue; } $plugins[ $plugin_data['slug'] ] = wp_array_slice_assoc( $plugin_data, $fields );