How to Delete All WooCommerce Products

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.

Recent Articles

How to find WooCommerce products in the database

Hey, where in the database (or phpMyAdmin) are my WooCommerce products stored? Sometimes you may have some reason to find directly any...

Why is WordPress Asking For Your FTP Credentials to Install Plugins?

You want to install any plugin, but *blink* - WordPress need your FTP credentials. What the hell? The problem is simple -...

Fix PHP Warning: POST Content-Length of 8978294 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

This error is getting probably when you trying to upload an import on WordPress on your XAMPP local dev environment, right? Well,...

How to Hide Shipping Methods in WooCommerce?

This is a small detail, but WooCommerce doesn't have built-in any function for hiding shipping methods based on different situations. Imagine when...

How to Get WordPress Post Featured Image URL

Are you a WordPress developer or an advanced WordPress user? Whoever you are, sometimes you may need the direct URL of a...

Get in touch

Be our first-class reader, build a community and follow us on social media!


  1. 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?

Leave A Reply

Please enter your comment!
Please enter your name here