Refactor plugin removal process in wp-import.php to handle non-empty directories and check for installed plugins before deactivation.

This commit is contained in:
2026-02-08 19:58:07 -07:00
parent 28ac0d1cf9
commit 6c6493d3db
+11 -5
View File
@@ -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" );
}
}