uninstall_plugin() – Uninstall a single plugin.

You appear to be a bot. Output may be restricted

Description

Uninstalls a single plugin.

Calls the uninstall hook, if it is available.

Usage

$true|void = uninstall_plugin( $plugin );

Parameters

$plugin
( string ) required – Path to the plugin file relative to the plugins directory.

Returns

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

Source

File name: wordpress/wp-admin/includes/plugin.php
Lines:

1 to 52 of 52
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}" );
  }
}
 

 View on GitHub View on Trac