Title: OrderArc – Order Archive for WooCommerce
Author: Nicolás Alejandro Salinas
Published: <strong>November 6, 2026</strong>
Last modified: November 6, 2026

---

Search plugins

![](https://ps.w.org/orderarc/assets/banner-772x250.png?rev=3787381)

![](https://ps.w.org/orderarc/assets/icon.svg?rev=3787381)

# OrderArc – Order Archive for WooCommerce

 By [Nicolás Alejandro Salinas](https://profiles.wordpress.org/nicolassalinas/)

[Download](https://downloads.wordpress.org/plugin/orderarc.0.1.2.zip)

 * [Details](https://wordpress.org/plugins/orderarc/#description)
 * [Reviews](https://wordpress.org/plugins/orderarc/#reviews)
 *  [Installation](https://wordpress.org/plugins/orderarc/#installation)
 * [Development](https://wordpress.org/plugins/orderarc/#developers)

 [Support](https://wordpress.org/support/plugin/orderarc/)

## Description

On stores with tens or hundreds of thousands of orders, the WooCommerce orders screen
gets slow and order search can stop working altogether (the server cuts the request
before it finishes). Most of those orders are years old and nobody opens them, but
every search still has to go through them.

OrderArc moves old orders into separate archive tables inside your own database.
The orders screen and search only see recent orders, so they are fast again. Archived
orders are still there: you can search them, open them and restore them with one
click.

**How it moves orders**

 * Every row of an order is moved: the order, addresses, items, item meta, notes,
   order meta, refunds, the legacy `wp_posts` / `wp_postmeta` copy when there is
   one, and rows that other plugins keep per order (detected automatically, for 
   example invoices or tracking numbers).
 * Each batch runs inside one database transaction. Before anything is deleted, 
   OrderArc checks that the copy has the same number of rows and the same checksum
   of every column as the original. If anything differs, the whole batch is rolled
   back and those orders are not touched.
 * It does not use the WooCommerce order API to move orders, so no emails are sent,
   stock is not changed and no “order deleted” hooks run.
 * The order number stays reserved, so a new order never reuses an archived number.
 * WooCommerce Analytics and reports keep counting archived orders (their tables
   are not moved).
 * Download links that customers already received keep working; archived orders 
   do not appear under Downloads in My Account.

**What you get**

 * Overview: how your orders are stored (HPOS, legacy, with or without sync), how
   many orders are ready to archive, and a button that measures how long a real 
   WooCommerce order search takes on your site.
 * Preview before archiving, then “Archive now” or a daily automatic run.
 * Runs in the background with Action Scheduler (included with WooCommerce), inside
   a time window you choose (01:00–06:00 by default), and slows down by itself if
   the server gets slow.
 * If the site had no traffic during the night and the run did not start, it can
   continue slowly during the day or wait for the next night (your choice).
 * “Archived orders” tab: search by order number, email, name or phone, open any
   archived order (read-only) and restore one, several or all.
 * An “Archived (N)” link in the WooCommerce orders list, and old links to an archived
   order open its archived view.
 * Customers see their archived orders under “Older orders” in My Account (only 
   orders placed with their own account).
 * Works with HPOS (with or without sync) and with legacy order storage.
 * Orders that have child orders other than refunds (for example subscriptions),
   and renewal orders of a subscription, are never archived.
 * Personal data requests (Tools  Export Personal Data and Erase Personal Data) 
   also cover archived orders, following the WooCommerce setting for removing personal
   data from orders.

**What it does not do**

 * It does not delete orders. Archived orders stay in your database until you restore
   them.
 * It does not send your data anywhere. Everything happens on your own server.

## Screenshots

[⌊Overview: how orders are stored, how many are ready to archive, and how long a
real WooCommerce order search takes.⌉⌊Overview: how orders are stored, how many 
are ready to archive, and how long a real WooCommerce order search takes.⌉[

Overview: how orders are stored, how many are ready to archive, and how long a real
WooCommerce order search takes.

[⌊Archive tab: choose statuses and age, preview exactly what would move, then archive
now or every night.⌉⌊Archive tab: choose statuses and age, preview exactly what 
would move, then archive now or every night.⌉[

Archive tab: choose statuses and age, preview exactly what would move, then archive
now or every night.

[⌊Archived orders: search by number, email, name or phone, and restore one, several
or all.⌉⌊Archived orders: search by number, email, name or phone, and restore one,
several or all.⌉[

Archived orders: search by number, email, name or phone, and restore one, several
or all.

[⌊An archived order, opened read-only, with a Restore button.⌉⌊An archived order,
opened read-only, with a Restore button.⌉[

An archived order, opened read-only, with a Restore button.

[⌊The WooCommerce orders list with the "Archived" link.⌉⌊The WooCommerce orders 
list with the "Archived" link.⌉[

The WooCommerce orders list with the “Archived” link.

[⌊My Account: customers still see their own archived orders under "Older orders".⌉⌊
My Account: customers still see their own archived orders under "Older orders".⌉[

My Account: customers still see their own archived orders under “Older orders”.

## Installation

 1. Install and activate WooCommerce and OrderArc.
 2. Go to WooCommerce  OrderArc.
 3. Make a backup of your database.
 4. In the Archive tab, choose which statuses and how old, click Preview, then Archive
    now.

## FAQ

### Is it safe?

Each batch is copied, verified (row count and checksum of every column) and only
then removed from the live tables, all inside one transaction. If the check fails,
nothing changes for those orders. Even so, OrderArc asks you to confirm that you
have a recent database backup before the first run, and you should have one.

### Do my reports change?

No. WooCommerce Analytics tables are not moved, so totals and history stay the same.
One exception: if you re-import historical data in Analytics with “Delete previously
imported data”, WooCommerce rebuilds the reports from live orders only, so archived
orders drop out until you restore them.

### Can I get an order back?

Yes. Open the Archived orders tab, find the order and click Restore. It goes back
exactly as it was. Orders you restore by hand are not archived again by the automatic
run.

### Which orders can be archived?

Orders that are no longer in progress: Completed, Cancelled, Refunded, Failed or
a final status added by another plugin (Completed, Cancelled and Refunded by default),
older than the number of days you choose (minimum 30, 365 by default). Renewal orders
of a subscription are never archived.

### What happens if I uninstall the plugin?

If there are archived orders, their tables are kept, so nothing is lost. Install
OrderArc again to see and restore them. If the archive is empty, uninstalling removes
everything the plugin created.

### What if I switch between HPOS and legacy storage?

Restore all archived orders before switching. If you switch anyway, OrderArc shows
a notice in its screen.

### Does it work on shared hosting?

Yes. Work is done in short slices (about 20 seconds each) that fit common PHP time
limits, and the batch size adapts to how fast your server answers.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“OrderArc – Order Archive for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Nicolás Alejandro Salinas ](https://profiles.wordpress.org/nicolassalinas/)

[Translate “OrderArc – Order Archive for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/orderarc)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/orderarc/), check out
the [SVN repository](https://plugins.svn.wordpress.org/orderarc/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/orderarc/) by [RSS](https://plugins.trac.wordpress.org/log/orderarc/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.2

 * Database queries reworked so that only placeholders are added to the SQL. No 
   change in behaviour.
 * Translations are now delivered by translate.wordpress.org.

#### 0.1.1

 * Personal data export and erasure requests now include archived orders.
 * Renewal orders of a subscription are never archived.
 * Stricter detection of tables that other plugins use to store data per order.

#### 0.1.0

 * First release.

## Meta

 *  Version **0.1.2**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [archive](https://wordpress.org/plugins/tags/archive/)[hpos](https://wordpress.org/plugins/tags/hpos/)
   [orders](https://wordpress.org/plugins/tags/orders/)[performance](https://wordpress.org/plugins/tags/performance/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/orderarc/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/orderarc/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/orderarc/reviews/)

## Contributors

 *   [ Nicolás Alejandro Salinas ](https://profiles.wordpress.org/nicolassalinas/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/orderarc/)