prefix . 'userhub_sites'; $wpdb->query( "DROP TABLE IF EXISTS {$table_name}" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared // 2. Clean up options registered by the plugin $options = array( 'wpuh_mode', 'wpuhm_db_version', 'wpuhc_api_key', 'wpuhc_site_label', 'wpuhc_allowed_ips', ); foreach ( $options as $option ) { delete_option( $option ); } // 3. Clean up transients used for notices and setup delete_transient( 'wpuh_setup_success' ); delete_transient( 'wpuh_settings_success' ); delete_transient( 'wpuh_coexistence_error' ); // 4. Clean up dynamic client nonces from the options table $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_wpuhc_nonce_%' OR option_name LIKE '_transient_timeout_wpuhc_nonce_%'" );