On this page
Plugin_Upgrader::deactivate_plugin_before_upgrade( bool|WP_Error $response, array $plugin ): bool|WP_Error
Deactivates a plugin before it is upgraded.
Description
Hooked to the ‘upgrader_pre_install’ filter by Plugin_Upgrader::upgrade().
Parameters
$responsebool|WP_Error Required-
The installation response before the installation has started.
$pluginarray Required-
Plugin package arguments.
Return
Source
File: wp-admin/includes/class-plugin-upgrader.php. View all references
public function deactivate_plugin_before_upgrade( $response, $plugin ) {
if ( is_wp_error( $response ) ) { // Bypass.
return $response;
}
// When in cron (background updates) don't deactivate the plugin, as we require a browser to reactivate it.
if ( wp_doing_cron() ) {
return $response;
}
$plugin = isset( $plugin['plugin'] ) ? $plugin['plugin'] : '';
if ( empty( $plugin ) ) {
return new WP_Error( 'bad_request', $this->strings['bad_request'] );
}
if ( is_plugin_active( $plugin ) ) {
// Deactivate the plugin silently, Prevent deactivation hooks from running.
deactivate_plugins( $plugin, true );
}
return $response;
}
Related
Uses
| Uses | Description |
|---|---|
| wp_doing_cron() wp-includes/load.php | Determines whether the current request is a WordPress cron request. |
| is_plugin_active() wp-admin/includes/plugin.php | Determines whether a plugin is active. |
| deactivate_plugins() wp-admin/includes/plugin.php | Deactivates a single plugin or multiple plugins. |
| is_wp_error() wp-includes/load.php | Checks whether the given variable is a WordPress Error. |
| WP_Error::__construct() wp-includes/class-wp-error.php | Initializes the error. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/plugin_upgrader/deactivate_plugin_before_upgrade