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()


Top ↑

Return

(bool|WP_Error) True if the installation was successful, false or a WP_Error otherwise.


Top ↑

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


Top ↑

Changelog

Changelog
VersionDescription
3.7.0The $args parameter was added, making clearing the plugin update cache optional.
2.8.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by the Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.