prefix . 'ability_guard_logs' ); // phpcs:ignore PluginCheck.Security.DirectDB.UnescapedDBParameter, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared $wpdb->query( "DROP TABLE IF EXISTS {$ability_guard_table_name}" ); delete_option( 'ability_guard_db_version' ); delete_option( 'ability_guard_log_input_data' ); delete_option( 'ability_guard_log_output_data' ); delete_option( 'ability_guard_log_retention_limit' ); delete_option( 'ability_guard_delete_data_on_uninstall' ); delete_option( 'ability_guard_watchlist' ); delete_option( 'ability_guard_alerts_enabled' ); delete_option( 'ability_guard_alert_email' ); delete_option( 'ability_guard_alert_on_high_risk' ); delete_option( 'ability_guard_alert_on_errors' ); delete_option( 'ability_guard_alert_on_watched' ); delete_option( 'ability_guard_reports_enabled' ); delete_option( 'ability_guard_report_frequency' ); delete_option( 'ability_guard_report_scheduled_frequency' ); delete_option( 'ability_guard_report_email' ); delete_option( 'ability_guard_saved_views' ); } /** * Remove AbilityGuard data from all sites in a multisite network. */ function ability_guard_cleanup_sites(): void { $sites = is_multisite() ? get_sites( array( 'number' => 0 ) ) : array(); if ( empty( $sites ) ) { ability_guard_cleanup_current_site(); return; } $current_blog_id = get_current_blog_id(); foreach ( $sites as $site ) { $target_blog_id = absint( $site->blog_id ); if ( $target_blog_id > 0 && $target_blog_id !== $current_blog_id ) { switch_to_blog( $target_blog_id ); } ability_guard_cleanup_current_site(); if ( $target_blog_id > 0 && $target_blog_id !== $current_blog_id ) { restore_current_blog(); } } } ability_guard_cleanup_sites(); wp_clear_scheduled_hook( 'ability_guard_send_scheduled_report' );