BulkSweep – Bulk Deleter

Description

BulkSweep is a fast, safe, and easy-to-use admin tool that lets you delete any WordPress or WooCommerce data in bulk — with smart filters, a live count preview, dry-run mode, batch processing, and a full activity log.

Supported Entity Types

WooCommerce (requires WooCommerce)

  • Orders — filter by status and date range
  • Products — filter by status and date
  • Customers — filter by date range (role: customer/subscriber)
  • Coupons — bulk remove discount codes
  • Product Reviews

WordPress Core

  • Posts — filter by status and date
  • Pages — filter by status and date
  • Media / Attachments — removes files from disk too
  • Comments — filter by status and type (comment, pingback, trackback)
  • Users (non-admin) — administrators are always protected
  • Terms & Taxonomies — categories, tags, product attributes

Key Features

  • Filter-Based Bulk Delete — target items by status, date range, taxonomy and more
  • Specific ID Mode — paste a list of IDs for surgical single or multi-item deletion
  • Dry Run Mode — preview exactly what would be deleted without deleting anything
  • Live Preview Count — see how many items match your filters before you act
  • Batch Processing — configurable batch limit prevents PHP timeouts on large sites
  • Force Delete or Trash — choose permanent deletion or move to trash
  • Double Confirmation — checkbox + JS confirm dialog prevents accidents
  • Activity Log — every operation logged with user, type, count and timestamp (last 200 entries)
  • WooCommerce Detection — WC entity types are automatically disabled if WooCommerce is not active
  • Admin-protected — administrators and the currently logged-in user are always safe
  • Translation Ready — all strings wrapped in i18n functions

How to Use

  1. Go to BulkSweep in the WordPress admin sidebar
  2. Choose a data type from the left panel
  3. Set your filters (status, date range, etc.)
  4. Click Preview Count to see how many items match
  5. Enable Dry Run to simulate without deleting (recommended for first run)
  6. Check the confirmation checkbox and click Delete Now

Safety Recommendations

  • Always take a full database backup before running bulk deletions
  • Use Dry Run first to verify the count is what you expect
  • Start with a small batch size (50–100) on shared hosting
  • Check the Activity Log after each run

Installation

  1. Upload the bulksweep folder to /wp-content/plugins/
  2. Activate the plugin through the Plugins screen in WordPress Admin
  3. Go to BulkSweep in the admin sidebar
  4. Select a data type and configure your filters

FAQ

Can I undo a bulk deletion?

If Force Delete is turned off, items are moved to trash and can be restored. With Force Delete enabled, deletion is permanent and cannot be undone. We strongly recommend taking a database backup first.

Will it ever delete administrator accounts?

No. Administrators and the currently logged-in user are always protected and will never be deleted, regardless of filters.

What happens if I have 50,000 orders to delete?

The batch limit (configurable in Settings, default 100) means only 100 items are deleted per request. Run the deletion multiple times until the Preview Count shows 0. This prevents PHP timeouts on shared hosting.

Does it work without WooCommerce?

Yes. If WooCommerce is not active, WooCommerce-specific entity types (orders, products, customers, coupons, reviews) are automatically disabled. All WordPress-native types work without WooCommerce.

Is it translation ready?

Yes. All user-facing strings are wrapped in standard WordPress i18n functions and the text domain is bulksweep.

What does Dry Run do?

Dry Run shows you how many items would be deleted by your current filters without actually deleting anything. It respects the batch limit. Use it to verify your filters are correct before committing to a real deletion.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“BulkSweep – Bulk Deleter” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release — renamed to BulkSweep
  • Fixed: Orders date range filter was overwriting itself when both date_from and date_to were set
  • Fixed: Media (attachment) post_status now correctly defaults to ‘inherit’
  • Fixed: PHP notice — esc_html() was incorrectly wrapping an integer inside printf()
  • Fixed: $saved variable was undefined on first settings page load
  • Fixed: Dry-run and Delete Now button labels are now fully translatable
  • Fixed: Clear Log confirmation string is now translatable
  • Fixed: Admin JS asset hook suffixes now match correct menu slug
  • Support for 11 entity types (5 WooCommerce, 6 WordPress core)
  • Filter-based and specific-ID deletion modes
  • Dry Run mode (no-op preview)
  • Live preview count
  • Batch processing with configurable limit
  • Activity log (last 200 entries)
  • Force delete / trash option
  • Double confirmation gate
  • Full i18n / translation ready
  • uninstall.php for clean removal