From 1a5611a84e36acbbac49c58e5ecd7ff9500550dd Mon Sep 17 00:00:00 2001 From: Presskopp Date: Thu, 8 Jan 2026 15:53:34 +0100 Subject: [PATCH 1/2] Show dependency install/active state in plugin list --- .../includes/class-wp-plugins-list-table.php | 66 +++++++++++++++---- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index 897e46cda22d2..db21aac7f4e1a 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -1567,18 +1567,62 @@ protected function add_dependencies_to_dependent_plugin_row( $dependent ) { return; } - $links = array(); - foreach ( $dependency_names as $slug => $name ) { - $links[] = $this->get_dependency_view_details_link( $name, $slug ); - } + $requires = null; + + if ( ! empty( $dependency_names ) ) { - $is_active = is_multisite() ? is_plugin_active_for_network( $dependent ) : is_plugin_active( $dependent ); - $comma = wp_get_list_item_separator(); - $requires = sprintf( - /* translators: %s: List of dependency names. */ - __( 'Requires: %s' ), - implode( $comma, $links ) - ); + $links = array(); + + foreach ( $dependency_names as $slug => $name ) { + $link = $this->get_dependency_view_details_link( $name, $slug ); + + $dependency_file = WP_Plugin_Dependencies::get_dependency_filepath( $slug ); + + $is_installed = false; + $is_active = false; + + if ( $dependency_file ) { + $is_installed = true; + $is_active = is_multisite() + ? is_plugin_active_for_network( $dependency_file ) || is_plugin_active( $dependency_file ) + : is_plugin_active( $dependency_file ); + } + + if ( ! $is_installed ) { + $link .= sprintf( + ' %s + %s', + __( '(not installed)' ), + __( 'Not installed' ) + ); + } elseif ( $is_active ) { + $link .= sprintf( + ' %s + + %s', + __( '(installed, active)' ), + __( 'Installed and active' ) + ); + } else { + $link .= sprintf( + ' %s + + %s', + __( '(installed, inactive)' ), + __( 'Installed but inactive' ) + ); + } + + $links[] = $link; + } + + $comma = wp_get_list_item_separator(); + $requires = sprintf( + /* translators: %s: List of dependency names. */ + __( 'Requires: %s' ), + implode( $comma, $links ) + ); + } $notice = ''; $error_message = ''; From f0cb0125311002364b69784c7ef2c496b09e917d Mon Sep 17 00:00:00 2001 From: Presskopp Date: Fri, 9 Jan 2026 15:57:31 +0100 Subject: [PATCH 2/2] clear whitespace --- src/wp-admin/includes/class-wp-plugins-list-table.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index db21aac7f4e1a..82edfa8c3c975 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -1568,14 +1568,12 @@ protected function add_dependencies_to_dependent_plugin_row( $dependent ) { } $requires = null; - if ( ! empty( $dependency_names ) ) { $links = array(); foreach ( $dependency_names as $slug => $name ) { $link = $this->get_dependency_view_details_link( $name, $slug ); - $dependency_file = WP_Plugin_Dependencies::get_dependency_filepath( $slug ); $is_installed = false;