prefix . 'ncb_arm_redirects'; $table_404_log = $wpdb->prefix . 'ncb_arm_404_log'; // La nuova tabella per i log 404 $wpdb->query( "DROP TABLE IF EXISTS {$table_redirects}" ); $wpdb->query( "DROP TABLE IF EXISTS {$table_404_log}" ); // 2. Cancello tutte le opzioni create dal plugin. // Uso una query LIKE per essere sicuro di rimuovere tutte le opzioni che iniziano // con 'ncb_arm_', anche se in futuro ne aggiungessi di nuove. $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'ncb_arm\\_%'" ); // 3. Pulisco anche i transient che potrei aver creato. // Anche qui, uso LIKE per una pulizia completa e a prova di futuro. // I transient hanno due righe nella tabella options, una per il valore e una per il timeout. $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\\_transient\\_ncb_arm\\_%'" ); $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\\_transient\\_timeout\\_ncb_arm\\_%'" ); // 4. Gestisco il caso di una installazione multisito. // È fondamentale pulire i dati per ogni singolo sito della rete. if ( is_multisite() ) { // Ottengo la lista di tutti i siti della rete. $sites = get_sites( array( 'fields' => 'ids' ) ); // Eseguo un ciclo per ogni sito. foreach ( $sites as $site_id ) { // Passo al contesto del blog corrente nel ciclo. switch_to_blog( $site_id ); // Rimuovo le tabelle specifiche del sito (il prefisso $wpdb->prefix cambia automaticamente). $multisite_redirects_table = $wpdb->prefix . 'ncb_arm_redirects'; $multisite_404_log_table = $wpdb->prefix . 'ncb_arm_404_log'; $wpdb->query( "DROP TABLE IF EXISTS {$multisite_redirects_table}" ); $wpdb->query( "DROP TABLE IF EXISTS {$multisite_404_log_table}" ); // Cancello le opzioni e i transient per questo specifico sito. $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'ncb_arm\\_%'" ); $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\\_transient\\_ncb_arm\\_%'" ); $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\\_transient\\_timeout\\_ncb_arm\\_%'" ); // Ripristino il contesto del blog originale prima di passare al prossimo. restore_current_blog(); } }