WP_Upgrader::download_package() public WP 2.8.0
Download a package.
{} Это метод класса: WP_Upgrader{}
Хуки из метода
Возвращает
Строку/WP_Error. The full path to the downloaded package file, or a WP_Error object.
Использование
$WP_Upgrader = new WP_Upgrader(); $WP_Upgrader->download_package( $package, $check_signatures, $hook_extra );
- $package(строка) (обязательный)
- The URI of the package. If this is the full path to an existing local file, it will be returned untouched.
- $check_signatures(true/false)
- Whether to validate file signatures.
По умолчанию: false - $hook_extra(массив)
- Extra arguments to pass to the filter hooks.
По умолчанию: empty array
Список изменений
С версии 2.8.0 | Введена. |
С версии 5.5.0 | Added the $hook_extra parameter. |
Код WP_Upgrader::download_package() WP Upgrader::download package WP 5.6.2
public function download_package( $package, $check_signatures = false, $hook_extra = array() ) {
/**
* Filters whether to return the package.
*
* @since 3.7.0
* @since 5.5.0 Added the `$hook_extra` parameter.
*
* @param bool $reply Whether to bail without returning the package.
* Default false.
* @param string $package The package file name.
* @param WP_Upgrader $this The WP_Upgrader instance.
* @param array $hook_extra Extra arguments passed to hooked filters.
*/
$reply = apply_filters( 'upgrader_pre_download', false, $package, $this, $hook_extra );
if ( false !== $reply ) {
return $reply;
}
if ( ! preg_match( '!^(http|https|ftp)://!i', $package ) && file_exists( $package ) ) { // Local file or remote?
return $package; // Must be a local file.
}
if ( empty( $package ) ) {
return new WP_Error( 'no_package', $this->strings['no_package'] );
}
$this->skin->feedback( 'downloading_package', $package );
$download_file = download_url( $package, 300, $check_signatures );
if ( is_wp_error( $download_file ) && ! $download_file->get_error_data( 'softfail-filename' ) ) {
return new WP_Error( 'download_failed', $this->strings['download_failed'], $download_file->get_error_message() );
}
return $download_file;
}