Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/ez-page-eu/ez-order-clone/archive/refs/heads/main.zipEZ Order Clone is a lightweight and intuitive plugin designed to fill the gap left by WooCommerce’s lack of a native order duplication feature. By providing a simple, one-click solution, it empowers store administrators to effortlessly clone any existing order and set the new copy’s status to "Pending payment", making it easier to recreate orders without manual data entry.
Key Features
- One-Click Cloning: Duplicate existing orders directly from the order management screen.
- Consistent Data Handling: Carry over products, billing, and shipping details into the cloned order.
- Time-Saving: Eliminate the need to re-enter order details from scratch.
- Pending Payment Status: Automatically mark new orders as "Pending payment" for streamlined follow-up or further modifications.
Who Should Use This Plugin?
EZ Order Clone is ideal for:
- Store owners and shop managers who frequently need to recreate or test orders.
- Developers managing WooCommerce stores, especially when handling custom requests or streamlining internal workflows.
Version 1.1.0 compatibility
Supports WooCommerce 7.1 and newer, using WooCommerce CRUD APIs for both legacy order storage and High-Performance Order Storage (HPOS). HPOS compatibility is declared through the WooCommerce feature API. Redirects and row highlighting support both order administration screens.
Clones retain historical currency, prices, discounts, taxes, fees, shipping instances, addresses and payment method. Tax rates and coupon conditions are not recalculated. Deleted products/variations and expired/deleted coupons do not prevent cloning. New orders remain pending payment, with fresh order/item IDs and without the original payment, refund or stock-reduction state.
The order custom-field allowlist remains _billing_nip only. Item metadata
(including variation attributes) is retained, excluding stock/refund bookkeeping
keys. Other plugins' order-level metadata is not copied automatically.
Verified matrix (2026-10-21)
| WooCommerce | WordPress | PHP | Order storage tested |
|---|---|---|---|
| 7.1.0 | 6.1.8 | 7.4.33 | Legacy, HPOS, HPOS with synchronization |
| 8.2.0 | 7.1.3 | 7.4.33 | Legacy, HPOS, HPOS with synchronization |
| 9.9.5 | 7.1.3 | 8.3.36 | Legacy, HPOS, HPOS with synchronization |
| 10.9.0 | 7.1.3 | 8.3.36 | Legacy, HPOS, HPOS with synchronization |
| 11.2.1 | 7.1.3 | 8.3.36 | Legacy, HPOS, HPOS with synchronization |
Integration tests use real WordPress/WooCommerce installations and MariaDB
11.4.5, with a fresh PHP process to read each saved clone. All 870 PHP assertions
and 12 JavaScript validation cases passed. Handler tests also cover redirects,
invalid IDs, permissions and nonce validation. Integration tests cover historical
line data, changed tax rates, deleted products/variations, expired/missing coupons,
NIP, metadata isolation, unchanged source orders, pending status and save-failure
cleanup. On WooCommerce 8.2 and newer in this matrix, tests disable the
woocommerce_hpos_enable_sync_on_read filter and inject stale legacy metadata
to check that cloning reads HPOS data. WooCommerce 7.1 predates that filter and is
tested with its available storage and synchronization mechanisms.
These are representative tested releases across the supported range; every
intermediate patch release and third-party integration has not been tested.
Test scripts, fixtures, runtimes and results are kept in the local .agents/
directory, which is excluded from Git.