diff --git a/wp-admin/includes/class-wp-ms-themes-list-table.php b/wp-admin/includes/class-wp-ms-themes-list-table.php
index cb1f34999d..355496f5ae 100644
--- a/wp-admin/includes/class-wp-ms-themes-list-table.php
+++ b/wp-admin/includes/class-wp-ms-themes-list-table.php
@@ -502,6 +502,13 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
 			);
 		}
 
+		$compatible_wp  = is_wp_version_compatible( $theme->get( 'Requires' ) );
+		$compatible_php = is_php_version_compatible( $theme->get( 'RequiresPHP' ) );
+		if ( ! $compatible_wp || ! $compatible_php ) {
+			unset( $actions['enable'] );
+			unset( $actions['disable'] );
+		}
+
 		if ( ! $allowed && current_user_can( 'delete_themes' ) && ! $this->is_site_themes && $stylesheet != get_option( 'stylesheet' ) && $stylesheet != get_option( 'template' ) ) {
 			$url = add_query_arg(
 				array(
@@ -672,6 +679,9 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
 	public function single_row_columns( $item ) {
 		list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
 
+		$compatible_wp  = is_wp_version_compatible( $item->get( 'Requires' ) );
+		$compatible_php = is_php_version_compatible( $item->get( 'RequiresPHP' ) );
+
 		foreach ( $columns as $column_name => $column_display_name ) {
 			$extra_classes = '';
 			if ( in_array( $column_name, $hidden ) ) {
@@ -682,7 +692,9 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
 				case 'cb':
 					echo '<th scope="row" class="check-column">';
 
-					$this->column_cb( $item );
+					if ( $compatible_wp && $compatible_php ) {
+						$this->column_cb( $item );
+					}
 
 					echo '</th>';
 					break;
diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php
index 89cb1f858a..7f1ea2689d 100644
--- a/wp-admin/includes/update.php
+++ b/wp-admin/includes/update.php
@@ -604,7 +604,9 @@ function wp_theme_update_row( $theme_key, $theme ) {
 	/** @var WP_MS_Themes_List_Table $wp_list_table */
 	$wp_list_table = _get_list_table( 'WP_MS_Themes_List_Table' );
 
-	$active = $theme->is_allowed( 'network' ) ? ' active' : '';
+	$active         = $theme->is_allowed( 'network' ) ? ' active' : '';
+	$compatible_wp  = is_wp_version_compatible( $theme->get( 'Requires' ) );
+	$compatible_php = is_php_version_compatible( $theme->get( 'RequirePHP' ) );
 
 	printf(
 		'<tr class="plugin-update-tr%s" id="%s" data-slug="%s">' .
@@ -643,24 +645,41 @@ function wp_theme_update_row( $theme_key, $theme ) {
 			$response['new_version']
 		);
 	} else {
-		printf(
-			/* translators: 1: Theme name, 2: Details URL, 3: Additional link attributes, 4: Version number, 5: Update URL, 6: Additional link attributes. */
-			__( 'There is a new version of %1$s available. <a href="%2$s" %3$s>View version %4$s details</a> or <a href="%5$s" %6$s>update now</a>.' ),
-			$theme['Name'],
-			esc_url( $details_url ),
-			sprintf(
-				'class="thickbox open-plugin-details-modal" aria-label="%s"',
-				/* translators: 1: Theme name, 2: Version number. */
-				esc_attr( sprintf( __( 'View %1$s version %2$s details' ), $theme['Name'], $response['new_version'] ) )
-			),
-			$response['new_version'],
-			wp_nonce_url( self_admin_url( 'update.php?action=upgrade-theme&theme=' ) . $theme_key, 'upgrade-theme_' . $theme_key ),
-			sprintf(
-				'class="update-link" aria-label="%s"',
-				/* translators: %s: Theme name. */
-				esc_attr( sprintf( __( 'Update %s now' ), $theme['Name'] ) )
-			)
-		);
+		if ( $compatible_wp && $compatible_php ) {
+			printf(
+				/* translators: 1: Theme name, 2: Details URL, 3: Additional link attributes, 4: Version number, 5: Update URL, 6: Additional link attributes. */
+				__( 'There is a new version of %1$s available. <a href="%2$s" %3$s>View version %4$s details</a> or <a href="%5$s" %6$s>update now</a>.' ),
+				$theme['Name'],
+				esc_url( $details_url ),
+				sprintf(
+					'class="thickbox open-plugin-details-modal" aria-label="%s"',
+					/* translators: 1: Theme name, 2: Version number. */
+					esc_attr( sprintf( __( 'View %1$s version %2$s details' ), $theme['Name'], $response['new_version'] ) )
+				),
+				$response['new_version'],
+				wp_nonce_url( self_admin_url( 'update.php?action=upgrade-theme&theme=' ) . $theme_key, 'upgrade-theme_' . $theme_key ),
+				sprintf(
+					'class="update-link" aria-label="%s"',
+					/* translators: %s: Theme name. */
+					esc_attr( sprintf( __( 'Update %s now' ), $theme['Name'] ) )
+				)
+			);
+		} else {
+			printf(
+				/* translators: 1: Theme name, 2: Details URL, 3: Additional link attributes, 4: Version number, 5: Update URL, 6: Additional link attributes. */
+				__( 'There is a new version of %1$s available. <a href="%2$s" %3$s>View version %4$s details</a>.<br>Current theme requirements not met. This theme requires WordPress %5$s and PHP %6$s.' ),
+				$theme['Name'],
+				esc_url( $details_url ),
+				sprintf(
+					'class="thickbox open-plugin-details-modal" aria-label="%s"',
+					/* translators: 1: Theme name, 2: Version number. */
+					esc_attr( sprintf( __( 'View %1$s version %2$s details' ), $theme['Name'], $response['new_version'] ) )
+				),
+				$response['new_version'],
+				$theme->get( 'Requires' ),
+				$theme->get( 'RequiresPHP' )
+			);
+		}
 	}
 
 	/**
