WordPress.org

Make WordPress Core

Opened 6 years ago

Last modified 12 months ago

#27188 new defect (bug)

deactived_plugin behaves improperly — at Initial Version

Reported by: wpsmith Owned by:
Milestone: Priority: normal
Severity: normal Version: 2.9
Component: Plugins Keywords: has-patch dev-feedback needs-refresh
Focuses: Cc:

Description

Currently, if someone were to hook into deactivated_plugin, one should expect that the $plugin actually be deactivated.

So if, for example, I hook into it with the following code, deactivating Addthis, I don't get the expected behavior.

add_action( 'deactivated_plugin', 'dtat_deactivate_self', 10, 2 );
/**
 *  Deactivate ourself if Premise is deactivated.
 */
function dtat_deactivate_self( $plugin, $network_deactivating ) {
	if ( 'addthis/addthis_social_widget.php' == $plugin ) {
		die( 'Addthis: ' . print_r( is_plugin_active( $plugin ), 1 ) );
	}
}

The plugin still shows that it is active. So if I hook in here to check if plugin has been deactivated, then it fails. Instead, the deactived_plugin hook should appear after the update_option call, which is where the plugin is actually deactivated.

OR, the docs are wrong and should be updated.

Attached is a sample addthis plugin extension that deactivates after Addthis is deactived by being forced to use update_option_active_plugins and update_option_active_sitewide_plugins.

See Github Gist sample plugin for Addthis.

Change History (2)

@wpsmith
6 years ago

Option 2: Docs Update

@wpsmith
6 years ago

Option 1 (preferable): move action

Note: See TracTickets for help on using tickets.