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..82edfa8c3c975 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,60 @@ 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 = '';