validate_plugin

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

WordPress Version: 6.1

/**
 * Validates the plugin path.
 *
 * Checks that the main plugin file exists and is a valid plugin. See validate_file().
 *
 * @since 2.5.0
 *
 * @param string $plugin Path to the plugin file relative to the plugins directory.
 * @return int|WP_Error 0 on success, WP_Error on failure.
 */
function validate_plugin($plugin)
{
    if (validate_file($plugin)) {
        return new WP_Error('plugin_invalid', __('Invalid plugin path.'));
    }
    if (!file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
        return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
    }
    $installed_plugins = get_plugins();
    if (!isset($installed_plugins[$plugin])) {
        return new WP_Error('no_plugin_header', __('The plugin does not have a valid header.'));
    }
    return 0;
}

WordPress Version: 5.4

/**
 * Validate the plugin path.
 *
 * Checks that the main plugin file exists and is a valid plugin. See validate_file().
 *
 * @since 2.5.0
 *
 * @param string $plugin Path to the plugin file relative to the plugins directory.
 * @return int|WP_Error 0 on success, WP_Error on failure.
 */
function validate_plugin($plugin)
{
    if (validate_file($plugin)) {
        return new WP_Error('plugin_invalid', __('Invalid plugin path.'));
    }
    if (!file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
        return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
    }
    $installed_plugins = get_plugins();
    if (!isset($installed_plugins[$plugin])) {
        return new WP_Error('no_plugin_header', __('The plugin does not have a valid header.'));
    }
    return 0;
}

WordPress Version: 5.1

/**
 * Validate the plugin path.
 *
 * Checks that the main plugin file exists and is a valid plugin. See validate_file().
 *
 * @since 2.5.0
 *
 * @param string $plugin Path to the plugin file relative to the plugins directory.
 * @return WP_Error|int 0 on success, WP_Error on failure.
 */
function validate_plugin($plugin)
{
    if (validate_file($plugin)) {
        return new WP_Error('plugin_invalid', __('Invalid plugin path.'));
    }
    if (!file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
        return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
    }
    $installed_plugins = get_plugins();
    if (!isset($installed_plugins[$plugin])) {
        return new WP_Error('no_plugin_header', __('The plugin does not have a valid header.'));
    }
    return 0;
}

WordPress Version: 4.8

/**
 * Validate the plugin path.
 *
 * Checks that the main plugin file exists and is a valid plugin. See validate_file().
 *
 * @since 2.5.0
 *
 * @param string $plugin Path to the main plugin file from plugins directory.
 * @return WP_Error|int 0 on success, WP_Error on failure.
 */
function validate_plugin($plugin)
{
    if (validate_file($plugin)) {
        return new WP_Error('plugin_invalid', __('Invalid plugin path.'));
    }
    if (!file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
        return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
    }
    $installed_plugins = get_plugins();
    if (!isset($installed_plugins[$plugin])) {
        return new WP_Error('no_plugin_header', __('The plugin does not have a valid header.'));
    }
    return 0;
}

WordPress Version: 4.6

/**
 * Validate the plugin path.
 *
 * Checks that the file exists and is a valid file. See validate_file().
 *
 * @since 2.5.0
 *
 * @param string $plugin Plugin Path.
 * @return WP_Error|int 0 on success, WP_Error on failure.
 */
function validate_plugin($plugin)
{
    if (validate_file($plugin)) {
        return new WP_Error('plugin_invalid', __('Invalid plugin path.'));
    }
    if (!file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
        return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
    }
    $installed_plugins = get_plugins();
    if (!isset($installed_plugins[$plugin])) {
        return new WP_Error('no_plugin_header', __('The plugin does not have a valid header.'));
    }
    return 0;
}

WordPress Version: 3.7

/**
 * Validate the plugin path.
 *
 * Checks that the file exists and {@link validate_file() is valid file}.
 *
 * @since 2.5.0
 *
 * @param string $plugin Plugin Path
 * @return WP_Error|int 0 on success, WP_Error on failure.
 */
function validate_plugin($plugin)
{
    if (validate_file($plugin)) {
        return new WP_Error('plugin_invalid', __('Invalid plugin path.'));
    }
    if (!file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
        return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
    }
    $installed_plugins = get_plugins();
    if (!isset($installed_plugins[$plugin])) {
        return new WP_Error('no_plugin_header', __('The plugin does not have a valid header.'));
    }
    return 0;
}