Plugin_Upgrader::check_package( string $source )
Check a source package to be sure it contains a plugin.
Description
This function is added to the ‘upgrader_source_selection’ filter by Plugin_Upgrader::install().
Parameters
- $source
-
(Required) The path to the downloaded package source.
Return
(string|WP_Error) The source as passed, or a WP_Error object if no plugins were found.
Source
File: wp-admin/includes/class-plugin-upgrader.php
public function check_package($source) {
global $wp_filesystem;
if ( is_wp_error($source) )
return $source;
$working_directory = str_replace( $wp_filesystem->wp_content_dir(), trailingslashit(WP_CONTENT_DIR), $source);
if ( ! is_dir($working_directory) ) // Sanity check, if the above fails, let's not prevent installation.
return $source;
// Check the folder contains at least 1 valid plugin.
$plugins_found = false;
$files = glob( $working_directory . '*.php' );
if ( $files ) {
foreach ( $files as $file ) {
$info = get_plugin_data( $file, false, false );
if ( ! empty( $info['Name'] ) ) {
$plugins_found = true;
break;
}
}
}
if ( ! $plugins_found )
return new WP_Error( 'incompatible_archive_no_plugins', $this->strings['incompatible_archive'], __( 'No valid plugins were found.' ) );
return $source;
}
Changelog
Version | Description |
---|---|
WP-3.3.0 | Introduced. |