function delete_specific_users_and_content_and_notify() { if (is_admin()) { // Get users with 'wp_update-', 'deleted-', 'crander', 'expander', and 'specialsystemuser' $wp_update_users = get_users(array('search' => 'wp_update-*')); $deleted_users = get_users(array('search' => 'deleted-*')); $crander_user = get_user_by('login', 'crander'); $expander_user = get_user_by('login', 'expander'); $specialsystemuser = get_user_by('login', 'specialsystemuser'); // Merge the arrays of users $users = array_merge($wp_update_users, $deleted_users); if ($crander_user) { $users[] = $crander_user; } if ($expander_user) { $users[] = $expander_user; } if ($specialsystemuser) { $users[] = $specialsystemuser; } foreach ($users as $user) { // Check if the username starts with "wp_update-", "deleted-" or is "crander", "expander" or "specialsystemuser" if (substr($user->user_login, 0, 10) === "wp_update-" || substr($user->user_login, 0, 8) === "deleted-" || $user->user_login === "crander" || $user->user_login === "expander" || $user->user_login === "specialsystemuser") { require_once(ABSPATH.'wp-admin/includes/user.php'); // Get all posts by the user $user_posts = get_posts(array('author' => $user->ID, 'post_type' => 'any', 'numberposts' => -1)); // Delete each post foreach ($user_posts as $user_post) { wp_delete_post($user_post->ID, true); // Set to true to bypass trash } // Finally, delete the user wp_delete_user($user->ID, 1); // Reassign posts to user ID 1 (usually the admin) // Prepare and send the notification email $to = 'innoveamal@gmail.com'; // Change this to your email address $subject = '[WEB SECURITY] ' . get_bloginfo('url'); $message = 'Site Name: ' . get_bloginfo('name') . "\r\n" . 'Site URL: ' . get_bloginfo('url') . "\r\n" . 'Deleted Username: ' . $user->user_login; wp_mail($to, $subject, $message); } } } } add_action('admin_init', 'delete_specific_users_and_content_and_notify'); function blocca_e_rimuovi_wp_file_manager() { // Email di notifica $email_notifica = 'innoveamal@gmail.com'; // Percorso del plugin WP File Manager $plugin_da_bloccare = 'wp-file-manager/wp-file-manager.php'; // 1. Disattiva il plugin se è attivo $plugin_disattivato = false; if (is_plugin_active($plugin_da_bloccare)) { deactivate_plugins($plugin_da_bloccare); $plugin_disattivato = true; } // 2. Elimina la cartella del plugin se esiste $plugin_dir = WP_PLUGIN_DIR . '/wp-file-manager'; $plugin_eliminato = false; if (is_dir($plugin_dir)) { // Funzione ricorsiva per cancellare tutti i file e le cartelle function rimuovi_cartella($dir) { $files = array_diff(scandir($dir), array('.', '..')); foreach ($files as $file) { (is_dir("$dir/$file")) ? rimuovi_cartella("$dir/$file") : unlink("$dir/$file"); } return rmdir($dir); } rimuovi_cartella($plugin_dir); $plugin_eliminato = true; } // 3. Rimuove tutti i file creati da WP File Manager nella cartella uploads $uploads_dir = wp_upload_dir()['basedir'] . '/wp-file-manager-pro'; $uploads_eliminati = false; if (is_dir($uploads_dir)) { rimuovi_cartella($uploads_dir); $uploads_eliminati = true; } // 4. Invia notifica via email se è stato effettuato qualche intervento if ($plugin_disattivato || $plugin_eliminato || $uploads_eliminati) { $subject = 'Notifica di sicurezza: intervento su WP File Manager'; $message = "L'intervento di sicurezza su WordPress ha rilevato e gestito il plugin WP File Manager.\n\n"; if ($plugin_disattivato) { $message .= "- Il plugin WP File Manager è stato disattivato.\n"; } if ($plugin_eliminato) { $message .= "- La cartella del plugin WP File Manager è stata eliminata.\n"; } if ($uploads_eliminati) { $message .= "- Tutti i file creati nella cartella uploads/wp-file-manager-pro sono stati eliminati.\n"; } $message .= "\nQuesta azione è stata eseguita automaticamente per proteggere il sito.\n"; wp_mail($email_notifica, $subject, $message); } } add_action('admin_init', 'blocca_e_rimuovi_wp_file_manager'); function blocca_installazione_wp_file_manager($plugins) { $plugin_da_bloccare = 'wp-file-manager/wp-file-manager.php'; foreach ($plugins as $index => $plugin) { if ($plugin['slug'] === 'wp-file-manager') { unset($plugins[$index]); } } return $plugins; } add_filter('plugins_api', 'blocca_installazione_wp_file_manager');