Woo Product Remover

Plugin Banner

Woo Product Remover

by mcfarhat

Download
Description

Woo Product Remover clears out your entire WooCommerce catalog in one click. It removes products, variations, their metadata and their term relationships, and then cleans up the lookup tables WooCommerce keeps alongside them.

It handles every standard WooCommerce product type, including simple, grouped, external and variable products, plus all of their variations.

Your orders and customers are never touched. Only product data is removed.

Batched, so large catalogs work

Removal runs in batches over AJAX with a progress bar. A store with tens of thousands of products no longer depends on a single PHP request finishing before the server gives up, which is what used to make bulk deletion fail on big catalogs.

It cleans up what WooCommerce leaves behind

Deleting products straight from the database is fast, but modern WooCommerce keeps several tables keyed by product ID. If those are not cleaned, deleted products keep turning up in search, filtering and reports. This plugin clears all of them:

  • Product and variation posts, postmeta and term relationships
  • wc_product_meta_lookup
  • wc_product_attributes_lookup
  • wc_reserved_stock
  • wc_stock_notifications and its meta table
  • wc_category_lookup, when categories are removed
  • Product transients and the object cache

Optional extras

Everything below is off by default, so a normal run only deletes products:

  • Product categories, tags and attribute terms
  • Product images, including the files in your uploads folder
  • Product reviews
  • Customer download permissions and download logs

Safe with High-Performance Order Storage

The plugin declares compatibility with WooCommerce High-Performance Order Storage (HPOS). It only reads and writes product data, so enabling HPOS on your store is unaffected.

If you would like some custom work done, or have an idea for a plugin you’re ready to fund, check our site at www.greateck.com or contact us at info@greateck.com

  1. Upload the plugin files to the /wp-content/plugins/woo-product-remover directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Go to Woo Product Remover in the admin menu.
  4. Choose any optional extras, tick the confirmation box, and click Delete all products.
  5. Watch the progress bar. When it finishes you get a summary of everything that was removed.

Back up your database first. Product removal is permanent and there is no undo.

  1. The removal screen, with the optional extras and the confirmation checkbox.

    The removal screen, with the optional extras and the confirmation checkbox.

  2. Progress while a catalog is cleared, and the summary of what was removed.

    Progress while a catalog is cleared, and the summary of what was removed.

Will this delete my orders or customers?

No. The plugin only touches product data. Orders, customers, coupons and settings are left exactly as they are. This is also why it is safe to use with High-Performance Order Storage enabled.

What if I have no products?

The plugin will tell you there was nothing to remove. It still runs its cleanup pass, which is useful if a previous run was interrupted or if products were deleted some other way and left rows behind.

Does the plugin remove categories, tags and attributes?

Only if you tick the box. The default is to keep them, so you do not have to rebuild your category structure just to clear the catalog.

When you do tick it, WooCommerce’s own internal terms are always preserved: the product type terms (simple, grouped, variable, external), the product visibility terms (featured, outofstock, rated-1 through rated-5), and your default product category. Deleting those would break the store rather than clean it.

Does it delete product images?

Only if you tick that box. When you do, images are deleted through WordPress itself so the files and all generated thumbnail sizes are removed from your uploads folder too.

Only images uploaded directly to a product are removed. If a product simply points at an image from your media library that was uploaded elsewhere, that image is left alone.

How fast is it?

Very. Removal is done in direct SQL rather than loading each product into memory one at a time, so clearing tens of thousands of products takes seconds rather than hours.

I have a huge catalog. Will it time out?

No. Work is split into batches of 200 products per request. If you want to tune that, use the wpr_batch_size filter.

Can I hook into the removal?

Yes. Because deletion is done in SQL, the usual WordPress and WooCommerce delete hooks do not fire, so the plugin provides its own:

  • wpr_before_delete_batch — passed the array of IDs about to be deleted
  • wpr_after_delete_batch — passed the array of IDs that were deleted
  • wpr_removal_complete — passed the final counters
  • wpr_batch_size — filter the number of products per request
  • wpr_product_post_types — filter which post types count as products
  • wpr_term_taxonomies — filter which taxonomies the category option clears

Great plugin

By adeelaziz on February 23, 2023

Man this plugin saved me a lot of time! Thank You SO much Muhammed!

Thanks, perfect!

By gama2005 on March 22, 2022

Works like a charm!

Awesome!

By mehmetnadir on August 26, 2021

I cleaned the database of 300,000 products, which I could not delete with dozens of plugins and different sql commands, in under 10 seconds with this plugin. You are amazing.

Works great with 10.000+ products

By celik75 on February 9, 2021

Using it for years to test imports, and delete all at once no sql action needed.

Amazing It works great with deleting products!

By vincentfijian on January 3, 2020

With this cool plugin i was able to delete 3000+ products in around 10 seconds 🙂 Thank you so much!

Works Perfectly, THanks

By NERA (nexteratechs) on December 26, 2019

It do what it says to. Clearing your wooCOmmerce store in single click ! Thanks

Great Plugin

By ecomapi on December 6, 2018

Great Plugin

Excellent plugin

By jwktemplates on November 25, 2018

Excellent plugin

Just what I needed

By Oluseun Taylor (seuntaylor) on August 25, 2018

This plugin saved (and is still saving) me tons of time and clicks! I am testing out complex WC imports from a CSV I generated and had to do a lot of bulk deletes from the imports that didn't turn out well and this plugin helped me out tremendously! The option to delete the associated Media Library Featured image and other related images would be a spectacular feature addition to this plugin! The fact that this feature is absent doesn't change my 5-star rating for it - it does exactly what it says it does - it's a Woocommerce Product Remover. Thank you mcfarhat

Excellent plugin

By Tanmoy Biswas (biswas87) on March 28, 2018

This plugin awesome

2.0.0

  • Updated for WordPress 7.1 and WooCommerce 11.
  • Removal now runs in batches with a progress bar, so large catalogs no longer time out.
  • Fixed: ticking “remove categories” could delete WooCommerce’s own product type and product visibility terms, along with the default product category, breaking the store. These are now always preserved.
  • Fixed: deleted products were leaving orphaned rows in WooCommerce’s lookup tables, so they kept appearing in search, filtering and reports. All product-keyed WooCommerce tables are now cleaned.
  • Added: optional removal of product images, including the files on disk.
  • Added: optional removal of product reviews.
  • Added: optional removal of customer download permissions and download logs.
  • Added: declares compatibility with High-Performance Order Storage (HPOS).
  • Added: developer hooks for batching and cleanup.
  • Product transients and the object cache are now cleared after removal.
  • Requires a confirmation before deleting, and all output is properly escaped and translatable.

1.1.0

Adding support to keep categories, tags and taxonomies related to the removed products. These will be kept by default (new checkbox option) to prevent any accidental data loss.

1.0.0

  • Initial Version *
Back to top