Skip to content

Instantly share code, notes, and snippets.

@hslaszlo
Forked from twmbx/wc-delete-all-products.sql
Created June 14, 2023 12:41
Show Gist options
  • Save hslaszlo/fef3f14eb18a3c16b44bd37340cc4cc1 to your computer and use it in GitHub Desktop.
Save hslaszlo/fef3f14eb18a3c16b44bd37340cc4cc1 to your computer and use it in GitHub Desktop.
WooCommerce Delete All Products, Product Attachments and custom Product Attributes
-- Products
DELETE relations.*, taxes.*, terms.*
FROM wp_term_relationships AS relations
INNER JOIN wp_term_taxonomy AS taxes
ON relations.term_taxonomy_id=taxes.term_taxonomy_id
INNER JOIN wp_terms AS terms
ON taxes.term_id=terms.term_id
WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product');
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product');
DELETE FROM wp_posts WHERE post_type = 'product';
-- Product Attachments (also need to delete files physically)
DELETE FROM wp_postmeta
WHERE post_id IN
(
SELECT id
FROM wp_posts
WHERE post_type = 'attachment'
)
;
DELETE FROM wp_posts WHERE post_type = 'attachment';
-- Attributes
DELETE FROM wp_terms WHERE term_id IN
(
SELECT term_id
FROM wp_term_taxonomy
WHERE taxonomy LIKE 'pa_%'
);
DELETE FROM wp_woocommerce_attribute_taxonomies WHERE attribute_name LIKE '%';
DELETE FROM wp_term_taxonomy WHERE taxonomy LIKE 'pa_%';
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
-- Nuke this, it's bothersome and sticky.
-- Stores attributes even after they've been deleted from the wp_attribute_taxonomies
DELETE FROM wp_options WHERE option_name LIKE '_transient_wc_attribute_taxonomies';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment