validate_active_plugins

The timeline below displays how wordpress function validate_active_plugins has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Validates active plugins.
 *
 * Validate all active plugins, deactivates invalid and
 * returns an array of deactivated ones.
 *
 * @since 2.5.0
 * @return WP_Error[] Array of plugin errors keyed by plugin file name.
 */
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 array();
    }
    $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;
}

WordPress Version: 5.4

/**
 * Validate active plugins
 *
 * Validate all active plugins, deactivates invalid and
 * returns an array of deactivated ones.
 *
 * @since 2.5.0
 * @return WP_Error[] Array of plugin errors keyed by plugin file name.
 */
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 array();
    }
    $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;
}

WordPress Version: 4.2

/**
 * Validate active plugins
 *
 * Validate all active plugins, deactivates invalid and
 * returns an array of deactivated ones.
 *
 * @since 2.5.0
 * @return array invalid plugins, plugin as key, error as value
 */
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 array();
    }
    $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;
}

WordPress Version: 4.0

/**
 * Validate active plugins
 *
 * Validate all active plugins, deactivates invalid and
 * returns an array of deactivated ones.
 *
 * @since 2.5.0
 * @return array invalid plugins, plugin as key, error as value
 */
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;
}

WordPress Version: 3.8

/**
 * Validate active plugins
 *
 * Validate all active plugins, deactivates invalid and
 * returns an array of deactivated ones.
 *
 * @since 2.5.0
 * @return array invalid plugins, plugin as key, error as value
 */
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;
}

WordPress Version: 3.7

/**
 * Validate active plugins
 *
 * Validate all active plugins, deactivates invalid and
 * returns an array of deactivated ones.
 *
 * @since 2.5.0
 * @return array invalid plugins, plugin as key, error as value
 */
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() && is_super_admin()) {
        $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;
}