query("DROP TABLE IF EXISTS {$wpdb->prefix}lrwc_transactions"); $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}lrwc_redemptions"); $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}lrwc_staff"); $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}lrwc_pending_points"); // Remove user meta with prepared statement $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s", 'lrwc_%' ) ); $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s", '_lrwc_%' ) ); // Remove options with prepared statement $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", 'lrwc_%' ) ); // Remove order meta with prepared statement $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_key LIKE %s", '_lrwc_%' ) ); // Remove from HPOS if exists $lrwc_hpos_table = $wpdb->prefix . 'wc_orders_meta'; $lrwc_table_exists = $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $lrwc_hpos_table) ); if ($lrwc_table_exists) { $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}wc_orders_meta WHERE meta_key LIKE %s", '_lrwc_%' ) ); } // phpcs:enable } // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery // phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching // Always clear transients $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", '_transient_lrwc_%' ) ); $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", '_transient_timeout_lrwc_%' ) ); // phpcs:enable // Clear rewrite rules flush_rewrite_rules();