Validate active plugins

Validate all active plugins, deactivates invalid and returns an array of deactivated ones.

Signature

validate_active_plugins()

Return

(array) invalid plugins, plugin as key, error as value

Source

function validate_active_plugins() {
	$plugins = get_option( 'active_plugins', array() );
	// Validate vartype: array.
	if ( ! is_array( $plugins ) ) {
		update_option( 'active_plugins', array() );
		$plugins = array();
	}

	if ( is_multisite() && current_user_can( 'manage_network_plugins' ) ) {
		$network_plugins = (array) get_site_option( 'active_sitewide_plugins', array() );
		$plugins = array_merge( $plugins, array_keys( $network_plugins ) );
	}

	if ( empty( $plugins ) )
		return;

	$invalid = array();

	// Invalid plugins get deactivated.
	foreach ( $plugins as $plugin ) {
		$result = validate_plugin( $plugin );
		if ( is_wp_error( $result ) ) {
			$invalid[$plugin] = $result;
			deactivate_plugins( $plugin, true );
		}
	}
	return $invalid;
}
WP Trac GitHub

Link here