Remove all WooCommerce products is a good thing, especially when you have got thousands of products and need to make your site clear. We bring solutions that were tested with WordPress version 5.4 and below.
In my case, I needed to change the XML feed setting and all of my current products delete. I had almost 4 000 products already in the shop. Don’t think, that you need to do it manually!
Solution 1: Change a number of items per page
If you don’t have thousands of products, you can click on “Screen Options” on the Products page and set the number of items per page to 100-200 products per page (more products = very slow loading). After that you can manually click on all products checkbox -> Bulk Actions -> Move to Trash
Solution 2: Run an SQL command through PhpMyAdmin
Watch the 1 minute video above. Login to your PhpMyAdmin and choose the correct database. Make sure, that you made backup your database before you execute the SQL statement! Than select table “wp_posts” (if you have wp prefix) and run the SQL statement:
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';
After execute this SQL statement verify if your products are deleted.
TIP: What about images related to the deleted products? You can use a plugin called Media Cleaner to delete all images that are not already used.
It says ‘imageemc_wp215.wp_term_relationships’ doesn’t exists. Any idea? Thank you in advance!
Check and change tables prefix before execution
It works like a charm thx 🙂
Hi i tried this SQL code and changed the table prefix “gfzc” which got. But i tried this twice and both times it messed up my database.
DELETE relations.*, taxes.*, terms.*
FROM gfzc_term_relationships AS relations
INNER JOIN gfzc_term_taxonomy AS taxes
ON relations.term_taxonomy_id=taxes.term_taxonomy_id
INNER JOIN gfzc_terms AS terms
ON taxes.term_id=terms.term_id
WHERE object_id IN (SELECT ID FROM gfzc_posts WHERE post_type=’product’);# 421 rows affected.
Whats wrong?
Still working in 2022 c:
thanks for this plugin
can you please guide me. how can i remove 1000 of products of selected date ?? or any date filter for admin ? so that i can filter the products and can remove selected date range products.