v1.0.0 · Live on WordPress.org

Your WooCommerce
database, finally lean

Order Archive Manager moves old orders out of your live tables into dedicated archive tables — inside database transactions, verified before anything is deleted, and fully restorable whenever you need them back.

0Archive Tables
0Default Batch Size
0 lossTransactional Safety
PHP 8.0+Minimum Required

Archive with confidence, not anxiety

Every archive operation runs inside a database transaction. Nothing is deleted from your live tables until the copy is verified complete.

01

Set your filters

Choose which order statuses to archive and set a date cutoff. Run a dry run first to see exactly how many orders match.

02

Copy inside a transaction

Orders are copied row by row into archive tables. If anything fails mid-copy, the transaction rolls back automatically — your original data stays untouched.

03

Verify before deleting

Row counts are checked between source and archive before a single live row is removed. No match, no delete.

04

Restore anytime

Archived orders can be restored back to WooCommerce at any time, with original IDs, meta, items, notes, and refunds intact.


Everything included. No Pro upsell.

All features ship in the free plugin — no premium tier, no feature gates.

Dedicated archive tables

Orders move to 7 separate archive tables, not just a status change. Live tables stay lean.

One-click restore

Restore any archived order back to WooCommerce with its original ID, meta, line items, notes, and refunds.

Dry run mode

Run the full archive process inside a transaction, then roll it back. Preview exactly what would happen — nothing is changed.

Database visualiser

See the real size of your WooCommerce order tables and how much space archiving will recover.

Archive health score

A weighted score across DB size, archive coverage, table integrity, and growth rate — cached and refreshed automatically.

Integrity checker

Scans archive tables for orphaned rows — meta, items, or notes referencing orders that no longer exist.

Subscription protection

Orders linked to active WooCommerce Subscriptions are automatically skipped during archiving.

Refund support

Refund posts and their meta are archived alongside the parent order — nothing gets left behind.

Activity log

Every archive, restore, and delete is recorded with timestamps, order counts, and status — including dry runs.

Batch processing

Processes 50 orders per batch by default, filterable for fast or shared hosting environments — no timeouts on large stores.

Onboarding wizard

First-run scan of your store: total orders, archive candidates, estimated DB savings, before you touch anything.

Permanent deletion

Permanently delete archived orders when they're no longer needed, with the same transaction safety as archiving.


See it in action

From the first health-score glance to a fully verified restore — every screen is built around one question: what happens to my data if I click this?

Database health score with smart recommendations
Database health score with smart recommendations for what to archive next
Storage composition and lifetime stats
Storage composition breakdown and lifetime archiving statistics
Archive readiness and growth forecast
Archive readiness checklist and database growth forecasting
Archive Orders step 1 filters
Archive Orders step 1 — filter by date range and order status with live eligibility counts
Archive Orders step 2 review impact
Archive Orders step 2 — review exactly how many rows and how much space will be affected
Archive Orders step 3 batch progress
Archive Orders step 3 — real-time batch progress with dry run option
Archived Orders dashboard
Archived Orders dashboard with restore confidence and integrity verification
Restore or delete archived orders
Restore or permanently delete archived orders, filtered by status
Restore in progress live batch tracking
Restore in progress — live batch tracking with success/skip/fail counts

Up and running in minutes

No configuration required after activation. The onboarding wizard walks you through your first archive.

  1. Upload the plugin folder to /wp-content/plugins/, or install directly from the WordPress plugin directory
  2. Activate the plugin through the Plugins screen in WordPress
  3. Go to Order Archive in the WordPress admin sidebar
  4. Review the Overview tab to see your current database usage
  5. Go to the Archive Orders tab to start your first archive

Requirements

  • WordPress 6.2 or higher
  • WooCommerce (latest recommended)
  • PHP 8.0 or higher
  • MySQL with InnoDB engine (required for transactions)
add_filter( 'hw_woam_batch_size', function() {
  return 1000;
} );

Version history

v1.0.0

Initial release

  • Archive, restore, and permanently delete WooCommerce orders
  • Dry run mode with full transaction rollback
  • Archive verification before any live data is deleted
  • Refund post archiving and restoration
  • WooCommerce Subscriptions guard
  • Analytics lookup table cleanup on archive
  • Database visualiser, archive health, and integrity checker
  • Batch processing with configurable batch size, full activity log, onboarding wizard

Questions, answered

Will archiving break my WooCommerce reports?

The plugin removes analytics cache rows from wp_wc_order_stats and related lookup tables when archiving. WooCommerce can regenerate these from order data — reports reflect the archive once regenerated.

Can I restore an order after archiving it?

Yes. Go to the Archived Orders tab, select Restore, and run the batch. The order comes back with its original ID, meta, items, notes, and refunds intact.

What happens if archiving fails halfway through?

Each order is wrapped in a database transaction. If any step fails, the transaction rolls back for that order and it stays in the live tables unchanged. The activity log records the error message.

Does this work with WooCommerce Subscriptions?

The plugin detects active subscriptions and skips any renewal order or order with an active subscription attached, so it never breaks the billing chain.

Is HPOS supported?

Not in version 1.0. If High-Performance Order Storage is enabled, the plugin shows an admin notice and stays inactive. HPOS support is on the roadmap.

Does it support multisite?

Not tested on multisite in v1.0. Each site in a network has its own table prefix, so the plugin should create separate archive tables per site, but this hasn't been verified yet.

Can I change the batch size?

Yes — add add_filter('hw_woam_batch_size', function(){ return 1000; }); to your theme or a custom plugin. Default is 500; increase on fast servers, decrease on shared hosting if you see timeouts.


Ready for a leaner database?

Free, open source, and actively maintained. Install it in minutes and run your first dry run today.