From 283b7d0a6622004036413ad47d2498c011b2d3e5 Mon Sep 17 00:00:00 2001 From: Drew Jaynes Date: Wed, 18 Nov 2015 17:58:26 +0000 Subject: [PATCH] Plugins: Rename the `delete_plugin` action hook (introduced in [35094]) to `deleted_plugin` as it fires ''following'' a plugin deletion attempt. Further, introduce a new `delete_plugin` action hook, to be fired ''before'' a plugin deletion attempt. Both changes bring parity with other such transactional hooks in core that fire before and after certain actions, including on plugin activation/deactivation and install/uninstall, among others. Props johnjamesjacoby. Fixes #26904. Built from https://develop.svn.wordpress.org/trunk@35669 git-svn-id: http://core.svn.wordpress.org/trunk@35633 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/plugin.php | 12 +++++++++++- wp-includes/version.php | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php index f2b2a9a65f..c6416ae2a6 100644 --- a/wp-admin/includes/plugin.php +++ b/wp-admin/includes/plugin.php @@ -816,7 +816,17 @@ function delete_plugins( $plugins, $deprecated = '' ) { uninstall_plugin($plugin_file); } + /** + * Fires immediately before a plugin deletion attempt. + * + * @since 4.4.0 + * + * @param string $plugin_file Plugin file name. + */ + do_action( 'delete_plugin', $plugin_file ); + $this_plugin_dir = trailingslashit( dirname( $plugins_dir . $plugin_file ) ); + // If plugin is in its own directory, recursively delete the directory. if ( strpos( $plugin_file, '/' ) && $this_plugin_dir != $plugins_dir ) { //base check on if plugin includes directory separator AND that it's not the root plugin folder $deleted = $wp_filesystem->delete( $this_plugin_dir, true ); @@ -832,7 +842,7 @@ function delete_plugins( $plugins, $deprecated = '' ) { * @param string $plugin_file Plugin file name. * @param bool $deleted Whether the plugin deletion was successful. */ - do_action( 'delete_plugin', $plugin_file, $deleted ); + do_action( 'deleted_plugin', $plugin_file, $deleted ); if ( ! $deleted ) { $errors[] = $plugin_file; diff --git a/wp-includes/version.php b/wp-includes/version.php index 3b99d47ae1..073818b964 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.4-beta4-35668'; +$wp_version = '4.4-beta4-35669'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.