uninstall_plugin( string $plugin ): true|void

Uninstalls a single plugin.

Description

Calls the uninstall hook, if it is available.

Parameters

$pluginstringrequired
Path to the plugin file relative to the plugins directory.

Return

true|void True if a plugin’s uninstall.php file has been found and included.
Void otherwise.

Source

function uninstall_plugin( $plugin ) {	$file = plugin_basename( $plugin );	$uninstallable_plugins = (array) get_option( 'uninstall_plugins' );	/** * Fires in uninstall_plugin() immediately before the plugin is uninstalled. * * @since 4.5.0 * * @param string $plugin Path to the plugin file relative to the plugins directory. * @param array $uninstallable_plugins Uninstallable plugins. */	do_action( 'pre_uninstall_plugin', $plugin, $uninstallable_plugins );	if ( file_exists( WP_PLUGIN_DIR . '/' . dirname( $file ) . '/uninstall.php' ) ) {	if ( isset( $uninstallable_plugins[ $file ] ) ) {	unset( $uninstallable_plugins[ $file ] );	update_option( 'uninstall_plugins', $uninstallable_plugins );	}	unset( $uninstallable_plugins );	define( 'WP_UNINSTALL_PLUGIN', $file );	wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $file );	include_once WP_PLUGIN_DIR . '/' . dirname( $file ) . '/uninstall.php';	return true;	}	if ( isset( $uninstallable_plugins[ $file ] ) ) {	$callable = $uninstallable_plugins[ $file ];	unset( $uninstallable_plugins[ $file ] );	update_option( 'uninstall_plugins', $uninstallable_plugins );	unset( $uninstallable_plugins );	wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $file );	include_once WP_PLUGIN_DIR . '/' . $file;	add_action( "uninstall_{$file}", $callable );	/** * Fires in uninstall_plugin() once the plugin has been uninstalled. * * The action concatenates the 'uninstall_' prefix with the basename of the * plugin passed to uninstall_plugin() to create a dynamically-named action. * * @since 2.7.0 */	do_action( "uninstall_{$file}" );	} } 

Hooks

do_action( ‘pre_uninstall_plugin’, string $plugin, array $uninstallable_plugins )

Fires in uninstall_plugin() immediately before the plugin is uninstalled.

do_action( “uninstall_{$file}” )

Fires in uninstall_plugin() once the plugin has been uninstalled.

Changelog

VersionDescription
2.7.0Introduced.

User Contributed Notes

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