diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php index ac8f3b53e..48f26ce51 100644 --- a/wp-admin/includes/plugin.php +++ b/wp-admin/includes/plugin.php @@ -304,14 +304,19 @@ function validate_active_plugins() { return; } + //Invalid is any plugin that is deactivated due to error. + $invalid = array(); + // If a plugin file does not exist, remove it from the list of active // plugins. foreach ( $check_plugins as $check_plugin ) { $result = validate_plugin($check_plugin); if ( is_wp_error( $result ) ) { + $invalid[$check_plugin] = $result; deactivate_plugins( $check_plugin, true); } } + return $invalid; } function validate_plugin($plugin) { diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php index 883d88bff..a24e88aed 100644 --- a/wp-admin/plugins.php +++ b/wp-admin/plugins.php @@ -165,8 +165,10 @@ wp_enqueue_script('admin-forms'); $title = __('Manage Plugins'); require_once('admin-header.php'); -validate_active_plugins(); - +$invalid = validate_active_plugins(); +if( !empty($invalid) ) + foreach($invalid as $plugin_file => $error) + echo '
' . sprintf(__('The plugin %s
has been deactivated due to "%s".'), $plugin_file, $error->get_error_message()) . '