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:
+11
-5
@@ -28,9 +28,12 @@ try {
|
|||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
rmdir( './wp-content/plugins/post-smtp' );
|
// Remove plugin directories (must be empty for rmdir; use recursive delete if they contain files).
|
||||||
rmdir( './wp-content/plugins/wordfence' );
|
@rmdir( './wp-content/plugins/post-smtp' );
|
||||||
rmdir( './wp-content/plugins/wp-imgix*' );
|
@rmdir( './wp-content/plugins/wordfence' );
|
||||||
|
foreach ( glob( './wp-content/plugins/wp-imgix*', GLOB_ONLYDIR ) ?: [] as $dir ) {
|
||||||
|
@rmdir( $dir );
|
||||||
|
}
|
||||||
|
|
||||||
$plugins = [
|
$plugins = [
|
||||||
'wp-2fa',
|
'wp-2fa',
|
||||||
@@ -63,7 +66,6 @@ $plugins = [
|
|||||||
'wp-file-manager',
|
'wp-file-manager',
|
||||||
'updraftplus',
|
'updraftplus',
|
||||||
'wp-smushit',
|
'wp-smushit',
|
||||||
'akismet',
|
|
||||||
'leadin',
|
'leadin',
|
||||||
'clickcease-click-fraud-protection',
|
'clickcease-click-fraud-protection',
|
||||||
'gtm-server-side',
|
'gtm-server-side',
|
||||||
@@ -81,6 +83,10 @@ $plugins = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
foreach ( $plugins as $plugin ) {
|
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" );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user