register_deactivation_hook( string $file, callable $callback )
Sets the deactivation hook for a plugin.
Description
When a plugin is deactivated, the action ‘deactivate_PLUGINNAME’ hook is called. In the name of this hook, PLUGINNAME is replaced with the name of the plugin, including the optional subdirectory. For example, when the plugin is located in wp-content/plugins/sampleplugin/sample.php, then the name of this hook will become ‘deactivate_sampleplugin/sample.php’.
When the plugin consists of only one file and is (as by default) located at wp-content/plugins/sample.php the name of this hook will be ‘deactivate_sample.php’.
Parameters
-
$file
string Required -
The filename of the plugin including the path.
-
$callback
callable Required -
The function hooked to the
'deactivate_PLUGIN'
action.
Source
File: wp-includes/plugin.php
.
View all references
function register_deactivation_hook( $file, $callback ) {
$file = plugin_basename( $file );
add_action( 'deactivate_' . $file, $callback );
}
Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
Examples
If you have a function called
myplugin_deactivate()
in the main plugin file at eitherwp-content/plugins/myplugin.php or
wp-content/plugins/myplugin/myplugin.php
use this code:
This will call the
myplugin_deactivate()
function on deactivation of the plugin.If you are using a namespace in the main plugin file
namespace MYNAMESAPCE;
you will need to use the __NAMESPACE__ keyword in your code for register_deactivation_hook.
register_deactivation_hook( __FILE__ , __NAMESPACE__ . '\deactivate_plugin' );
Otherwise, the code will be unable to find the function deactivate_plugin() and will produce a warning:
PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘deactivate_plugin’ not found.