Skip to content
Summer sale Save 20% on your first year Use code 2026SUMMER Ends September 30, 2026 Shop plugins

Amazing Orders & Reorder for WooCommerce Documentation

Amazing orders and reorders for WooCommerce

Official plugin guide

Amazing Orders & Reorder

Replace the plain WooCommerce My Account orders list with a modern, visual order history — product thumbnails, live search, date & status filters, one-click reorder, a “Buy it again” tab, shipment tracking and inline review prompts. Fully configurable, HPOS-ready, and available as blocks and shortcodes.

Version 1.0.1

WordPress 6.2+

PHP 7.4+

WooCommerce 8.0+

HPOS compatible

Requirements

ComponentRequirement
WordPress6.2 or newer
PHP7.4 or newer
WooCommerce8.0 or newer (required)
High-Performance Order Storage (HPOS)Fully supported — the plugin reads orders through WooCommerce CRUD, so it works with custom order tables or the legacy posts storage
Shipment tracking (optional)WooCommerce Shipment Tracking or Advanced Shipment Tracking, only if you want tracking numbers shown in the list

The plugin enhances the customer My Account → Orders area. It leaves the rest of WooCommerce untouched, loads its front-end assets only where its lists appear, and adds no third-party services.

Installation and upgrade

  1. Upload the plugin ZIP through Plugins → Add New Plugin → Upload Plugin, then activate it.
  2. Open WooCommerce → Orders & Reorder License and activate your license key to unlock the features and receive automatic updates.
  3. Configure the list under WooCommerce → Settings → Orders & Reorder.
  4. Visit My Account → Orders to see the new layout.

A valid license is required
Without an active license the plugin leaves WooCommerce’s default orders table in place. Activate your license (next section) to enable the visual list, reorder, Buy it again, tracking and reviews.

Upgrades are backward-compatible: your settings and the customer experience are preserved. As always, back up before upgrading a production site.

License and updates

Go to WooCommerce → Orders & Reorder License, paste the license key from your Amazing WP Plugins receipt, and select Activate License. The page shows the activation state, renewal date, a manual Check for updates button, and an automatic-updates toggle. A valid license enables one-click updates from the Plugins screen.

What the gate does

While the license is inactive, the default WooCommerce orders list is used and all premium features (reorder, Buy it again, tracking, reviews, blocks and shortcodes) stay off. Activating unlocks everything instantly.

What is transmitted

License and update requests include only the license key, site URL, product title, and update metadata — never any order, customer or review data.

License and updates screen with key field, activation state and update controls
License & Updates: activate your key, see the renewal date, and control updates. Select the image to view it full-size.

Quick start

  1. Activate your license under WooCommerce → Orders & Reorder License.
  2. Open WooCommerce → Settings → Orders & Reorder and confirm Enable visual orders list is on. Toggle the columns and features you want.
  3. Choose a Reorder mode (add the whole order, or a choose-items popup) and an After reorder action (go to cart, or stay with a toast).
  4. Pick your colors under Appearance, or leave them empty to inherit the theme.
  5. Log in as a customer and open My Account → Orders — search, filter, reorder, and try the Buy again tab.

Everything is one settings tab
All configuration lives under WooCommerce → Settings → Orders & Reorder, and every column and feature has its own on/off switch.

The visual orders list

A cleaner, more useful order history than the default WooCommerce table — built to look right in any theme.

The plugin replaces WooCommerce’s myaccount/orders.php with a modern layout: a strip of product thumbnails per order, the date, order number, total and a colour-coded status, plus action buttons. If an order contains more items than the thumbnail limit, a “+N” badge appears; clicking it reveals the rest in place.

The default WooCommerce orders table before the plugin
Before: the default WooCommerce orders table.
The Amazing Orders and Reorder visual list with thumbnails, filters and buttons
After: thumbnails, filters, search and action buttons.

Theme override & the “Force plugin layout” option
The list is applied through WooCommerce’s template loader. By default, if your theme provides its own woocommerce/myaccount/orders.php, that override takes precedence. Turn on Force plugin layout (General settings) to make the plugin’s layout win over the theme instead.

Order actions (View, Pay, Cancel & Reorder)

Each row shows WooCommerce’s own contextual order actions — so a pending order still shows Pay and Cancel, a completed order shows Details (View), and any actions added by other extensions (tracking, subscriptions…) are preserved too. The plugin adds its own Reorder button alongside them.

ButtonWhen it appears
DetailsAlways — opens the full order (WooCommerce’s “View” action, relabelled)
PayOrders awaiting payment
CancelCancellable orders (muted style by default so Pay stands out)
ReorderOrders with at least one item that can be re-added to the cart

Native classes, native look
Buttons carry WooCommerce/WordPress button classes (button, woocommerce-button, wp-element-button), so they inherit your theme automatically. Each also has an aorwc-btn--{action} class (and the colour settings) for fine styling.

Search & filters

Customers can find orders fast with a live, AJAX-powered toolbar — no page reloads.

Live search

Type to filter by order number, product name or SKU. Results update as you type (debounced), with an accessible “N orders found” announcement.

Status filter

A dropdown to show only a chosen status (Completed, Processing, Cancelled…) or all orders. It sits directly above the date range.

Date range

From / To date fields filter orders to a period. The end date is inclusive of the whole day, and the query is paginated so older orders are reachable.

The toolbar with status filter, date range and search
Status filter, date range and search.
Orders filtered by a date range
Filtering by a date range.


Each filter has its own on/off switch in the settings, so you can show any combination of search, status and date range — or none.

One-click reorder

Turn order history into repeat sales. The Reorder button re-adds a past order to the cart in a click.

Two modes

Add the whole order

One click re-adds every still-available item (variations reconstructed from the original order). Out-of-stock or removed items are skipped, and the customer is told how many.

Choose items (popup)

A tidy popup lists the order’s items with checkboxes and quantity fields, so the customer re-adds exactly what they want. Unavailable items are flagged.

After reorder

Choose what happens once items are added: Go to cart, or Stay on the page with a confirmation toast and a live mini-cart refresh — so customers can keep reordering from other orders. Reorder quantities are automatically capped to available stock.

On the order details page

Enable Reorder on the order details page to also show the Reorder button on the single View order screen — so a customer reviewing a past order can re-buy it without going back to the list.

Reorder mode and after-reorder settings
Reorder mode & after-reorder behaviour.
The choose-items reorder popup with checkboxes and quantities
The “choose items” popup.

Complex products
Variation attributes are rebuilt from the order. Products that rely on add-ons or unusual custom fields can be adjusted with the aorwc_reorder_item_data filter.

Buy it again

An Amazon-style repeat-purchase surface. A “Buy again” tab is added to My Account listing the customer’s most-purchased products (still published and in the catalog) as a grid, each with an image, price and a one-click Buy again button. Variable or grouped products link to the product page to choose options.

The Buy it again grid of most-purchased products with add buttons
Buy it again: the customer’s most-purchased products, one click to re-add. Select the image to view it full-size.

Place it anywhere with the block or shortcode too (see Blocks & shortcodes). The number of products and the account tab are controlled in the settings.

Show it at high-intent moments

Beyond the tab, you can surface a “Buy it again” strip on the order-received (Thank-You) page and the My Account dashboard — each an independent toggle — to prompt a repeat purchase exactly where intent peaks.

Fast by design
Each customer’s most-purchased list is cached for a configurable number of hours (default 12) and refreshed automatically whenever one of their orders changes status. Set the cache to 0 to disable it; it is also cleared automatically whenever you save the plugin settings.

Layout options

Tune how the grid looks in each place: a separate product count for the dashboard/order-received strips, a compact card layout (off, dashboard/order-received only, dedicated tab only, or everywhere), and a fixed column count for the tab and dashboard (0 = automatic, responsive).

If the tab doesn’t appear after enabling
The tab uses a My Account endpoint. Toggling it on flushes permalinks automatically; if you added it manually or migrated the site, re-save Settings → Permalinks once to register the endpoint.

Review prompt

Encourage reviews where customers already are. A prompt shows a random not-yet-reviewed product from the customer’s latest order, with a customizable heading. Customers can rate and review inline — a star rating plus an optional comment — without leaving the page, or dismiss with “Maybe later” to see another product.

1

Verified only

Reviews are accepted only from customers who actually purchased the product, one per product.

2

Spam-screened

Submissions run through WordPress moderation, a comment-flood check, and Akismet when it’s active.

3

Snooze, not nag

“Maybe later” hides a product for a configurable number of days (default 30), then it can be suggested again. Set 0 to never re-suggest.

Respects your store
The prompt only appears when reviews are enabled in WooCommerce and the product allows comments. The heading text is set in the settings — use %s for the product name.

Shipment tracking

When you use WooCommerce Shipment Tracking or Advanced Shipment Tracking (AST), the order row shows the tracking provider and number — linked to the carrier’s tracking page when a URL is available. It reads the standard _wc_shipment_tracking_items order meta both plugins write, so no extra setup is needed.

Display only
This surfaces existing tracking information to the customer; it does not create shipments or manage fulfilment. Other tracking sources can be supplied via the aorwc_tracking_items filter.

Settings

Everything is under WooCommerce → Settings → Orders & Reorder, grouped into sections.

SectionControls
GeneralEnable the visual orders list; Force plugin layout to override a theme template
Columns & elementsProduct thumbnails (and max per order), order date, order number, total, status
FeaturesAJAX search, status filter, date range filter; reorder button, reorder mode, after-reorder action; shipment tracking; “Buy it again” tab & product count; review prompt, inline review form, heading, dismiss & snooze days
AppearancePer-button background & text colours (Details, Reorder, Cancel, Review) and per-status colours
AdvancedDelete all plugin data on uninstall
Amazing Orders & Reorder for WooCommerce plugin settings version 1.0.1
Settings: show/hide every element and configure each feature. Select the image to view it full-size.
Amazing Orders & Reorder for WooCommerce plugin review and appearance settings version 1.0.1
Settings: show/hide every element and configure each feature. Select the image to view it full-size.

Colors & styling

By default every button inherits your theme. Under Appearance you can override each one:

ElementBehaviour
Details / Reorder / Review buttonsOptional background & text colour; empty = theme default
Cancel buttonA muted “ghost” style by default so Pay stands out; override its background & text if you prefer
Status coloursSet the colour for Completed, Processing, On hold, Pending, and Cancelled/Failed/Refunded

Colour overrides are output only where the plugin’s list actually renders (they don’t load on unrelated pages), and use !important so your choices win over the theme.

Custom CSS
Every element has a stable class — .aorwc-order, .aorwc-order__thumbs, .aorwc-status--{status}, .aorwc-btn--details/--reorder/--cancel, .aorwc-buyagain, .aorwc-review — so a theme’s stylesheet can fine-tune anything.

Blocks & shortcodes

The orders list is applied to My Account automatically. To place either list on any other page, use a Gutenberg block or a shortcode. Find the blocks in the inserter by searching “Amazing” or under the WooCommerce category.

BlockShortcodeShows
aorwc/orders[aorwc_orders]The current customer’s orders list
aorwc/buy-again[aorwc_buy_again]The customer’s most-purchased products
[aorwc_orders limit="10"]
[aorwc_buy_again limit="12"]

WooCommerce has no My Account blockThe My Account page itself is still the [woocommerce_my_account] shortcode — WooCommerce does not provide a My Account Gutenberg block. That’s why the orders list is applied through the template loader rather than a block on the account page.

Developer hooks

Extend the plugin without touching core. All extension points use the aorwc_ prefix.

Filters

HookPurpose
aorwc_settingsAdd or change settings fields
aorwc_orders_query_argsAdjust the wc_get_orders() args for the list
aorwc_search_query_args / aorwc_order_search_matchAdjust the AJAX search query / extend what counts as a match
aorwc_order_thumbnail_sizeImage size used for order-row thumbnails
aorwc_order_row_htmlModify the HTML of a single order row
aorwc_reorder_item_dataCart line data when an item is re-added
aorwc_search_limit / aorwc_date_filter_maxHow many orders search scans (no-date / date range)
aorwc_review_order_statuses / aorwc_review_snooze_daysStatuses eligible for the review prompt / snooze window
aorwc_buy_again_products / aorwc_buy_again_statuses / aorwc_buy_again_order_scanThe Buy-it-again list, its statuses and scan depth
aorwc_tracking_itemsSupply or override shipment-tracking items

Actions

aorwc_before_orders_list aorwc_after_orders_list aorwc_after_order_meta aorwc_order_row_actions aorwc_reordered aorwc_review_submitted aorwc_before_buy_again aorwc_after_buy_again

Add a button to every order row

add_action( 'aorwc_order_row_actions', function ( $order ) {
	printf(
		'<a class="button" href="%s">%s</a>',
		esc_url( $order->get_view_order_url() ),
		esc_html__( 'Invoice', 'your-textdomain' )
	);
} );

React when a customer reorders

add_action( 'aorwc_reordered', function ( $added, $skipped ) {
	// e.g. log or fire an analytics event.
}, 10, 2 );

Override the template

Copy templates/myaccount/orders.php from the plugin into yourtheme/woocommerce/myaccount/orders.php to customise the markup directly.

Troubleshooting

The orders list still looks like the default WooCommerce table

Confirm your license is active (WooCommerce → Orders & Reorder License) — without it the default list is used. Also check that Enable visual orders list is on. If your theme provides its own myaccount/orders.php override, turn on Force plugin layout in the General settings to take precedence over it.

My color or layout change didn’t appear

Assets are versioned and cached. Hard-refresh the page (Ctrl/Cmd + Shift + R), and clear any page/CDN cache if you use one.

The “Buy again” tab is missing

Re-save Settings → Permalinks once to register the My Account endpoint, then reload the account page.

The review prompt isn’t showing

It only appears when product reviews are enabled in WooCommerce, the customer has a completed/processing order with a reviewable product they haven’t reviewed, and that product hasn’t been dismissed within the snooze window.

Reorder skips items

Items are skipped when the product is no longer purchasable or is out of stock. The confirmation message reports how many were skipped.

Frequently asked questions

Does it work with High-Performance Order Storage (HPOS)?

Yes. All order reads go through WooCommerce CRUD (

wc_get_orders

/

wc_get_order

), so it works with custom order tables or the legacy posts storage.

Will it break my theme’s styling?

No. Buttons use the standard WooCommerce/WordPress button classes so they inherit your theme. Colours are opt-in overrides, and a theme

orders.php

override always takes precedence.

Can customers reorder only some items?

Yes — set

Reorder mode

to “Choose items (popup)” and they can pick items and quantities before adding to the cart.

Does it handle variable products on reorder?

Yes. Variation attributes are reconstructed from the original order. Products with add-ons or unusual custom fields can be handled with the

aorwc_reorder_item_data

filter.

Are inline reviews protected from spam?

Yes. They require a verified purchase, run through WordPress moderation and a comment-flood check, and are screened by Akismet when it’s active.

Can I place the lists on a normal page?

Yes — use the

aorwc/orders

and

aorwc/buy-again

blocks (search “Amazing” in the inserter) or the

[aorwc_orders]

and

[aorwc_buy_again]

shortcodes.

What happens if my license expires?

The features turn off and WooCommerce’s default orders list returns. Your settings are kept — reactivating the license restores everything.

Does uninstalling remove my data?

Only if you enable

Delete data on uninstall

under Advanced. Otherwise settings are preserved across reinstalls.

Changelog

Current version: 1.0.1. See readme.txt in the plugin package for the complete history.

1.0.1 Layout control, order-details reorder & high-intent “Buy it again”
  • New “Force plugin layout” option to override a theme’s My Account orders template.
  • Reorder button on the single order (View order) page (optional).
  • “Buy it again” strips on the order-received page and the My Account dashboard (optional).
  • Per-status color settings for every declared order status, including custom ones.
  • Numbered pagination (Previous 1 2 3 … N Next) on the orders list.
  • Cancel button color settings, with a muted default style.
  • “Buy it again” caching (configurable hours) with automatic refresh on order status change.
  • “Buy it again” dashboard product count, compact layout (dashboard/tab/both) and a fixed column count (default 4).
  • Cached “Buy it again” lists clear automatically when you save the settings; the account tab endpoint re-registers automatically on license activation.
  • Settings link on the Plugins screen, next to License.
  • Preserves WooCommerce’s native order actions (Pay, Cancel, View) in the list; reorder now caps quantities to available stock.
  • Color-override CSS loads only where the plugin’s lists render.
1.0.0 Initial release
  • Visual My Account orders list — product thumbnails with a “+N” reveal, date, number, total and colour-coded status.
  • Preserves WooCommerce’s contextual order actions (View/Details, Pay, Cancel) and adds a Reorder button.
  • Live AJAX search (order number, product name, SKU), a status filter and a From/To date range filter.
  • One-click reorder — whole order or a choose-items popup; redirect to cart or stay with a toast.
  • “Buy it again” My Account tab, block and shortcode of most-purchased products.
  • Inline star-rating review prompt (verified purchase, Akismet + flood protection) with a configurable “Maybe later” snooze.
  • Shipment tracking display from WooCommerce Shipment Tracking / Advanced Shipment Tracking.
  • Per-button and per-status colour settings; a settings tab to show/hide every element.
  • Gutenberg blocks (aorwc/orders, aorwc/buy-again) and shortcodes; HPOS compatible; EDD licensing with automatic updates.