query( $wpdb->prepare( 'DELETE FROM %i WHERE option_name LIKE %s OR option_name LIKE %s', $wpdb->options, $wpdb->esc_like( '_transient_brain2fa_' ) . '%', $wpdb->esc_like( '_transient_timeout_brain2fa_' ) . '%' ) ); $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS %i', $wpdb->prefix . 'brain2fa_passkeys' ) ); // phpcs:enable } if ( is_multisite() ) { foreach ( get_sites( array( 'fields' => 'ids', 'number' => 0, ) ) as $brain2fa_site_id ) { switch_to_blog( (int) $brain2fa_site_id ); brain2fa_uninstall_site(); restore_current_blog(); } } else { brain2fa_uninstall_site(); } // User meta is shared by all sites of a network, so it is removed once. Keep this list in sync with the meta keys in includes/. $brain2fa_user_meta_keys = array( 'brain2fa_enabled', 'brain2fa_method', 'brain2fa_secret', 'brain2fa_recovery_codes', 'brain2fa_totp_last_step', 'brain2fa_grace_expires_at', 'brain2fa_remembered_devices', 'brain2fa_failed_attempts', 'brain2fa_passkey_only', 'brain2fa_webauthn_user_handle', ); foreach ( $brain2fa_user_meta_keys as $brain2fa_meta_key ) { delete_metadata( 'user', 0, $brain2fa_meta_key, '', true ); }