prefix . 'advaipbl_logs'; $table_queue = $wpdb->prefix . 'advaipbl_notifications_queue'; $wpdb->query( "DROP TABLE IF EXISTS `{$table_logs}`" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery $wpdb->query( "DROP TABLE IF EXISTS `{$table_queue}`" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery $wpdb->query( "DROP TABLE IF EXISTS `{$table_scores}`" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery // --- Borrar Opciones de la Tabla `wp_options` --- $options_to_delete = [ 'advaipbl_settings', 'advaipbl_ips_whitelist', 'advaipbl_blocked_user_agents', 'advaipbl_whitelisted_user_agents', 'advaipbl_ips_bloqueadas_manual', 'advaipbl_ips_bloqueadas_honeypot', 'advaipbl_ips_bloqueadas_user_agent', 'advaipbl_ips_bloqueadas_404', 'advaipbl_ips_bloqueadas_403', 'advaipbl_ips_bloqueadas_login', 'advaipbl_ips_bloqueadas_geoblock', 'advaipbl_honeypot_urls', // --- Nuevas Funcionalidades --- 'advaipbl_waf_rules', 'advaipbl_ips_bloqueadas_waf', 'advaipbl_ips_bloqueadas_rate_limit', 'advaipbl_blocked_asns', 'advaipbl_ips_bloqueadas_asn', 'advaipbl_spamhaus_asn_list', 'advaipbl_spamhaus_last_update', 'advaipbl_ips_bloqueadas_xmlrpc_block', 'advaipbl_ips_bloqueadas_threat_score', // --- Opciones de Sistema y Legado --- 'advaipbl_db_version', 'advaipbl_admin_ip_whitelist_trigger', 'advaipbl_usm_sessions_per_page', 'advaipbl_telemetry_notice_dismissed', // Limpieza de opciones huérfanas de versiones anteriores 'advaipbl_recaptcha_enable', 'advaipbl_recaptcha_site_key', 'advaipbl_recaptcha_secret_key', 'advaipbl_recaptcha_version', 'advaipbl_recaptcha_score_threshold', // Opciones antiguas para compatibilidad 'ip_blocker_pro_settings', 'ip_blocker_pro_db_version', 'ip_blocker_pro_log_migration_status', ]; foreach ( $options_to_delete as $option_name ) { delete_option( $option_name ); } // --- Borrar Transients Relacionados --- $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE `option_name` LIKE %s OR `option_name` LIKE %s", $wpdb->esc_like( '_transient_advaipbl_' ) . '%', $wpdb->esc_like( '_transient_timeout_advaipbl_' ) . '%' ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery } // --- Limpiar Tareas de Cron SIEMPRE, sin importar la opción de borrado --- wp_clear_scheduled_hook( 'advaipbl_purge_old_logs_event' ); wp_clear_scheduled_hook( 'advaipbl_send_summary_email' ); wp_clear_scheduled_hook( 'advaipbl_update_spamhaus_list_event' ); wp_clear_scheduled_hook('advaipbl_send_telemetry_data_event'); wp_clear_scheduled_hook( 'advaipbl_threat_score_decay_event' );