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_Errorrequired
The installation response before the installation has started.
$pluginarrayrequired
Plugin package arguments.

Return

bool|WP_Error The original $response parameter or WP_Error.

Source

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

Changelog

VersionDescription
4.1.0Added a return value.
2.8.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.