BACK TO DIRECTORY

Order Tracking, Cancel & Return for WooCommerce – Post-Purchase Hub

by wpmakedev

0.0
(0 ratings)

Most WooCommerce order tracking plugins sell you a carrier integration: you open
an account with a shipping API, pay a monthly SaaS fee, and your customers’
delivery data travels through somebody else’s servers. This plugin does not
compete there, and does not try to.
It puts customer self-service on the order
page your customers already open — an order status timeline, an estimated
delivery date, and the buttons to cancel order, reorder, find an invoice or ask
a question — with no carrier account, no monthly fee, and no outbound HTTP
requests of any kind.

Every WooCommerce store gets the same email, over and over: where is my
order?
The customer already has the answer in their account — an order status
like “processing” — but that word means nothing to them. So they write to you,
and you answer by hand.

Post-Purchase Hub turns that status into something a customer can actually read:
a stage-by-stage timeline on the my account page they already visit, with a
delivery estimate where you have told it your shipping times. Then it gives them
the few things they would otherwise have emailed you about — cancelling,
reordering, finding an invoice, asking a question — as buttons that route into a
queue you control.

It adds all of this to the pages your theme already draws. It does not take them
over unless you ask it to.

Features

Order status timeline

  • Stage-by-stage progress on the single order page and in My Account, built
    from status changes recorded as they happen — so the dates shown are real.
  • A Progress column on the My Account order list, so a customer with several
    open orders sees all of them at a glance.
  • Stages mapped from your own statuses — the plugin reads the statuses your
    store actually uses, including custom ones added by other plugins.
  • Internal statuses stay internal. Any status can be set to “not shown to
    customers” and contributes nothing to the timeline.
  • Honest blanks. Where a date is not known, it says so rather than inventing
    one.

Estimated delivery date

  • Handling time in business days, set once for the store and overridable per
    shipping method.
  • Transit time as a range per shipping method, so customers see “arrives
    between the 26th and the 28th” rather than a single date that will sometimes be
    wrong.
  • Your non-working days and holidays are excluded from every calculation.
  • Real tracking wins. As soon as a tracking plugin supplies a real tracking
    number, the estimate steps aside automatically. Works with Advanced Shipment
    Tracking
    and WooCommerce Shipment Tracking out of the box, and any other
    source through a filter.

Customer self-service

  • Cancel order — the customer gives a reason and an optional note. It becomes
    a request you approve or decline.
  • Reorder — re-adds a past order to the cart, after a screen showing what
    changed: what is out of stock, what no longer exists, what costs more.
  • Invoice — links to the invoice your invoice plugin already generated.
    Supports PDF Invoices & Packing Slips, and falls back to the printable
    order page when no invoice plugin is present.
  • Get help with this order — a message form that reaches you with the order
    number, status and items already attached. This is also where a customer’s
    return request arrives today; see the FAQ below for what is and is not
    included.
  • Each action can be switched off, and switching one off removes it from the page
    and refuses it at the API.

Merchant request queue

  • One queue under WooCommerce, with a count in the menu of everything waiting
    on you.
  • Approve or decline with an internal note the customer never sees.
  • Optional restocking when you approve a cancellation.
  • Rules you set — which statuses are cancellable, how many times one order
    may be the subject of a request, how long a customer waits before asking again,
    and the response time you promise them.
  • Requests show on the order screen too, so you are never surprised by one
    you did not know about.

Guest order lookup

  • For customers who checked out without an account, off until you switch it
    on deliberately.
  • Nothing is revealed by guessing. The form emails a signed link to the
    address already on the order — never to the address typed into the form.
  • Rate limited, with a link lifetime you control.

Setup and configuration

  • A setup wizard that asks what you need and skips what you do not. Nothing
    reaches your storefront until you finish it — activating the plugin changes
    nothing on its own.
  • A settings screen organised into cards, with a search box that filters as
    you type.
  • A status panel that says plainly whether everything is working, and what to
    do when it is not.

Placement for developers and site builders

  • Shortcode[wpmphub_orders] renders the timeline view on any page.
  • Shortcode[wpmphub_order_lookup] renders the guest lookup form.
  • Block — an Order timeline block for the block editor.
  • WP-CLIwp wpmphub backfill-timeline fills in what can be derived for
    orders placed before you installed the plugin.
  • Filters throughout, including the stage map, action availability, tracking
    detection and invoice sources.
  • High-Performance Order Storage and legacy post storage both supported, and
    the test suite runs against both.

What this plugin deliberately does not do

Being plain about the edges matters more than a longer feature list.

  • It is not a carrier integration. It opens no account with a shipping API,
    buys no labels and fetches no carrier scans. WooCommerce order tracking here
    means showing the customer where their order stands in your process, and
    standing aside the moment a real tracking number exists.
  • It has no RMA workflow yet. There is no returns portal, no return merchandise
    authorisation number and no return label. A return request reaches you through
    the help form as an ordinary message.
  • It never issues a refund, and never touches a payment gateway. Approving a
    cancellation changes the order status and optionally restocks; refunding stays
    in WooCommerce, one click away on the order itself.
  • It never cancels an order by itself. A cancellation is always a request a
    human approves.
  • It does not create tracking numbers. It reads what your tracking plugin
    already stores. With no tracking plugin there is nothing to show, so it shows an
    estimated delivery date instead and says so.
  • It generates no PDFs. The invoice action links to what another plugin
    produced.
  • It does not replace your theme’s order pages unless you turn that on — and
    it refuses to turn on while your theme already customises those templates,
    rather than producing a broken page.

No monthly fee, no outbound requests, no data sharing

There is no subscription, no per-order pricing and no usage tier. This plugin
makes no outbound HTTP requests of any kind. No telemetry, no update pings,
no remote fonts or images, no analytics. Nothing about your store or your
customers leaves your server, because nothing is ever sent anywhere.

Order data is read and written only through WooCommerce’s own CRUD layer, and the
plugin never writes to another plugin’s data.

Source code and build tools

The plugin is GPL, and everything it ships can be read and rebuilt. The zip
contains the unminified source of every compiled asset alongside the compiled
files themselves:

  • assets/src/ — the JavaScript and SCSS sources for every bundle in
    assets/build/, including the setup wizard’s React app.
  • webpack.config.js and package.json — the build configuration and the
    script that runs it.

To rebuild the compiled assets from the sources in the zip:

npm install && npm run build

The build uses @wordpress/scripts,
WordPress’s own webpack configuration, and no other bundler. Nothing is
obfuscated, and no compiled file has a source that is not in the zip.

Development happens at https://github.com/wpmake22/post-purchase-hub, where the
PHP source, the test suites and the release script live as well.

Install it, spend two minutes in the wizard, and stop answering the same email.

Screenshots

Every order gets an order status timeline on the customer's own my account page, with an estimated delivery date wherever you have set shipping times.

Every order gets an order status timeline on the customer's own my account page, with an estimated delivery date wherever you have set shipping times.

The My Account order list gains a Progress column, and shows only the actions that actually apply to each order.

The My Account order list gains a Progress column, and shows only the actions that actually apply to each order.

Customers ask to cancel and you approve or decline. Nothing is cancelled automatically, and the plugin never issues a refund.

Customers ask to cancel and you approve or decline. Nothing is cancelled automatically, and the plugin never issues a refund.

The request queue: every cancellation request waiting on a decision, with the order it belongs to and the reason the customer gave.

The request queue: every cancellation request waiting on a decision, with the order it belongs to and the reason the customer gave.

A setup wizard that asks what you need and skips what you do not. Nothing reaches your storefront until you finish it.

A setup wizard that asks what you need and skips what you do not. Nothing reaches your storefront until you finish it.

The settings screen, with a status panel that says plainly whether everything is working.

The settings screen, with a status panel that says plainly whether everything is working.

Map your own order statuses onto the stages customers see, and set handling and transit times per shipping method.

Map your own order statuses onto the stages customers see, and set handling and transit times per shipping method.

Choose what customers can do for themselves, and the rules around cancellation requests.

Choose what customers can do for themselves, and the rules around cancellation requests.

Guest order lookup: customers without an account reach their order through a secure link emailed to the address already on it.

Guest order lookup: customers without an account reach their order through a secure link emailed to the address already on it.

Plugin Details

Active Installs
0
Total Downloads
139
Version
1.1.0
Requires WP
6.5
Requires PHP
8.1
Tested Up To
7.1
Added
2026-08-31
Last Updated
2026-09-06 2:19pm GMT

Ratings

5
0
4
0
3
0
2
0
1
0