Plugin_Upgrader::install() WordPress Method
The Plugin_Upgrader::install() method is used to upgrade a plugin from a .zip file. This method does not verify the file before attempting to upgrade.
Plugin_Upgrader::install( string $package, array $args = array() ) #
Install a plugin package.
Parameters
- $package
(string)(Required)The full local path or URI of the package.
- $args
(array)(Optional)Other arguments for installing a plugin package.
- 'clear_update_cache'
(bool) Whether to clear the plugin updates cache if successful. Default true.
Default value: array()
- 'clear_update_cache'
Return
(bool|WP_Error) True if the installation was successful, false or a WP_Error otherwise.
Source
File: wp-admin/includes/class-plugin-upgrader.php
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | public function install( $package , $args = array () ) { $defaults = array ( 'clear_update_cache' => true, 'overwrite_package' => false, // Do not overwrite files. ); $parsed_args = wp_parse_args( $args , $defaults ); $this ->init(); $this ->install_strings(); add_filter( 'upgrader_source_selection' , array ( $this , 'check_package' ) ); if ( $parsed_args [ 'clear_update_cache' ] ) { // Clear cache so wp_update_plugins() knows about the new plugin. add_action( 'upgrader_process_complete' , 'wp_clean_plugins_cache' , 9, 0 ); } $this ->run( array ( 'package' => $package , 'destination' => WP_PLUGIN_DIR, 'clear_destination' => $parsed_args [ 'overwrite_package' ], 'clear_working' => true, 'hook_extra' => array ( 'type' => 'plugin' , 'action' => 'install' , ), ) ); remove_action( 'upgrader_process_complete' , 'wp_clean_plugins_cache' , 9 ); remove_filter( 'upgrader_source_selection' , array ( $this , 'check_package' ) ); if ( ! $this ->result || is_wp_error( $this ->result ) ) { return $this ->result; } // Force refresh of plugin update information. wp_clean_plugins_cache( $parsed_args [ 'clear_update_cache' ] ); if ( $parsed_args [ 'overwrite_package' ] ) { /** * Fires when the upgrader has successfully overwritten a currently installed * plugin or theme with an uploaded zip package. * * @since 5.5.0 * * @param string $package The package file. * @param array $data The new plugin or theme data. * @param string $package_type The package type ('plugin' or 'theme'). */ do_action( 'upgrader_overwrote_package' , $package , $this ->new_plugin_data, 'plugin' ); } return true; } |
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
3.7.0 | The $args parameter was added, making clearing the plugin update cache optional. |
2.8.0 | Introduced. |