From 6c6493d3db666af13a0b0ed1a4b33bc913995e2e Mon Sep 17 00:00:00 2001 From: Roman Axelrod Date: Sun, 8 Feb 2026 19:58:07 -0700 Subject: [PATCH] Refactor plugin removal process in wp-import.php to handle non-empty directories and check for installed plugins before deactivation. --- wp-import.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/wp-import.php b/wp-import.php index 567643c..cf0bf55 100644 --- a/wp-import.php +++ b/wp-import.php @@ -28,9 +28,12 @@ try { exit( 1 ); } -rmdir( './wp-content/plugins/post-smtp' ); -rmdir( './wp-content/plugins/wordfence' ); -rmdir( './wp-content/plugins/wp-imgix*' ); +// Remove plugin directories (must be empty for rmdir; use recursive delete if they contain files). +@rmdir( './wp-content/plugins/post-smtp' ); +@rmdir( './wp-content/plugins/wordfence' ); +foreach ( glob( './wp-content/plugins/wp-imgix*', GLOB_ONLYDIR ) ?: [] as $dir ) { + @rmdir( $dir ); +} $plugins = [ 'wp-2fa', @@ -63,7 +66,6 @@ $plugins = [ 'wp-file-manager', 'updraftplus', 'wp-smushit', - 'akismet', 'leadin', 'clickcease-click-fraud-protection', 'gtm-server-side', @@ -81,6 +83,10 @@ $plugins = [ ]; foreach ( $plugins as $plugin ) { - echo shell_exec( "wp plugin deactivate $plugin" ); + $plugin_esc = escapeshellarg( $plugin ); + exec( "wp plugin is-installed $plugin_esc 2>/dev/null", $_, $return_code ); + if ( $return_code === 0 ) { + echo shell_exec( "wp plugin deactivate $plugin_esc" ); + } }