register_deactivation_hook( string $file, callable $function )

Set the deactivation hook for a plugin.

Description 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 Parameters


(string) (Required) The filename of the plugin including the path.


(callable) (Required) The function hooked to the 'deactivate_PLUGIN' action.

Top ↑

Source Source

File: wp-includes/plugin.php

function register_deactivation_hook( $file, $function ) {
	$file = plugin_basename( $file );
	add_action( 'deactivate_' . $file, $function );

Top ↑

Changelog Changelog

Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    If you have a function called myplugin_deactivate() in the main plugin file at either

    wp-content/plugins/myplugin.php or
    use this code:

    register_deactivation_hook( __FILE__, 'myplugin_deactivate' );

    This will call the myplugin_deactivate() function on deactivation of the plugin.

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