WP_Upgrader::unpack_package() WordPress Method
The WP_Upgrader::unpack_package() method is used to unpack a plugin or theme update package. This method is called by the WP_Upgrader::upgrade() method.
WP_Upgrader::unpack_package( string $package, bool $delete_package = true ) #
Unpack a compressed package file.
Parameters
- $package
(string)(Required)Full path to the package file.
- $delete_package
(bool)(Optional) Whether to delete the package file after attempting to unpack it.
Default value: true
Return
(string|WP_Error) The path to the unpacked contents, or a WP_Error on failure.
Source
File: wp-admin/includes/class-wp-upgrader.php
305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | public function unpack_package( $package , $delete_package = true ) { global $wp_filesystem ; $this ->skin->feedback( 'unpack_package' ); $upgrade_folder = $wp_filesystem ->wp_content_dir() . 'upgrade/' ; // Clean up contents of upgrade directory beforehand. $upgrade_files = $wp_filesystem ->dirlist( $upgrade_folder ); if ( ! empty ( $upgrade_files ) ) { foreach ( $upgrade_files as $file ) { $wp_filesystem -> delete ( $upgrade_folder . $file [ 'name' ], true ); } } // We need a working directory - strip off any .tmp or .zip suffixes. $working_dir = $upgrade_folder . basename ( basename ( $package , '.tmp' ), '.zip' ); // Clean up working directory. if ( $wp_filesystem -> is_dir ( $working_dir ) ) { $wp_filesystem -> delete ( $working_dir , true ); } // Unzip package to working directory. $result = unzip_file( $package , $working_dir ); // Once extracted, delete the package if required. if ( $delete_package ) { unlink( $package ); } if ( is_wp_error( $result ) ) { $wp_filesystem -> delete ( $working_dir , true ); if ( 'incompatible_archive' === $result ->get_error_code() ) { return new WP_Error( 'incompatible_archive' , $this ->strings[ 'incompatible_archive' ], $result ->get_error_data() ); } return $result ; } return $working_dir ; } |
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
2.8.0 | Introduced. |