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;
}