What ApprovalTrail does
Attach, version, and compare
Upload a proof against the order, replace it when the artwork moves, and keep every round.
Versions sit side by side so a disagreement about which round was approved is answered by looking, not by remembering.
There is no cap on proofs, orders or versions at any tier, including free.
Your customer never makes an account
Approval happens at a tokenized URL with a lifetime you control. There is no registration wall, no password reset, and no portal for anyone to get lost in.
That single decision is why approvals come back in hours instead of days, and it is available in the free plugin.
Links can be resent or reissued from the order at any point.
Production lock, in the free plugin
The mechanism that prevents the remake ships free, because a plugin that only records the argument after the fact has not solved anything.
One global toggle holds orders out of Processing and Completed while a proof is outstanding, and the order screen states plainly why the status will not move.
The paid tiers add per-product, per-category and per-status rules, plus an override that is itself written to the record.
A record built to survive the argument
Every event is timestamped in UTC, fingerprinted with SHA-256, and chained to the event before it.
The record states what the customer saw, which wording they chose, and when — and it says in plain English what the document is and is not.
It is a tamper-evident business record, not a signature product. We are specific about that in the document itself.
Reminders and deadlines for the ones who go quiet
Most jobs are not blocked by a disagreement. They are blocked by a customer who opened the email on a Friday and forgot.
Paid tiers send scheduled reminders, track a deadline per proof, and flag overdue jobs in the dashboard.
Auto-approve after N days exists, ships off by default, and cannot be set below three days.
Storage and retention you can defend
Master files are stored outside the web root and served through an access check, not by guessing a URL.
You decide how long masters are kept after a decision; the record of what happened outlives the file.
Paid tiers automate retention and can offload to S3 or WP Offload Media.
Everything else it does
-
Proof panel on the order
Attach, resend and reissue without leaving the WooCommerce order screen.
-
Unlimited versions
Every round is kept and numbered. No cap, at any tier.
-
Side-by-side compare
Put two rounds next to each other and see what actually changed.
-
Tokenized guest links
Approval without an account, with a link lifetime you set.
-
Comment on a change request
The customer says what is wrong in their own words, on the record.
-
Hash-chained event trail
Each entry carries the hash of the previous one, so later edits show.
-
SHA-256 file fingerprints
The record identifies the exact file the customer looked at.
-
UTC timestamps
One timezone in the record, displayed in yours.
-
Production lock
Hold guarded statuses while a proof is outstanding. Free tier.
-
Customer and staff email
Sent on issue, decision and reissue, with a copyable link.
-
HPOS-native
Built against High-Performance Order Storage, not retrofitted to it.
-
Private file storage
Masters live outside the web root behind an access check.
-
Retention controls
Decide how long master files are kept after a decision.
-
Hooks and REST routes
A documented public surface for the things you will want to automate.
-
Translation-ready
Every customer-facing string is translatable, including the approval page.
The evidence
What the record contains
The outcome, the exact wording the customer chose, a UTC timestamp, the file's SHA-256 fingerprint, and every event chained to the one before it.
An example of the record ApprovalTrail keeps
- 2026-03-04 09:12:07 UTC Proof v1 attached to order Entry fingerprint: 3f9c1a7e…8d20
- 2026-03-04 09:12:44 UTC Approval link sent to customer Entry fingerprint: a41b6002…17ce
- 2026-03-05 14:38:19 UTC Customer requested changes Changes requested Entry fingerprint: c7e5d913…4b8a
- 2026-03-06 08:02:55 UTC Proof v2 attached, link reissued Waiting Entry fingerprint: 92ba0f47…e611
- 2026-03-06 11:47:31 UTC Customer approved proof v2 Approved Entry fingerprint: d0417c8b…5f39
Every entry stores the hash of the entry before it, so a later edit to any earlier line stops the chain matching. This is a timestamped, tamper-evident business record of what the customer was shown and what they chose — not a signature service.
The boundary, stated plainly: this is a timestamped, tamper-evident business record of what your customer was shown and what they chose. It is not a signature service and we make no claim about legal enforceability. What it gives you is the record that settles the argument before it becomes one.
How it compares
There is one other serious way to do proof approval in WooCommerce. We have written it up honestly, including where it beats us.
| Capability | ApprovalTrail | WooCommerce File Approval |
|---|---|---|
| Price model | Free tier, then $49/yr | $39 one-time, 12 months of updates |
| Free version on WordPress.org | Yes | No |
| Customer approves without an account | Yes | Yes |
| Holds order statuses while a proof is outstanding | Yes, in the free tier | Partial — no status guard |
| Hash-chained approval record | Yes | No |
| HPOS-native | Yes | No |
| Most recent update at the date checked | Current release | Approximately 23 months earlier |
WooCommerce File Approval information checked 2026-08-07 from the vendor's public pricing and changelog pages. If anything here is out of date, tell us and we will correct it.
The full write-up, including when WooCommerce File Approval is the better choice
Tested against
- WordPress
- 6.9 and up
- WooCommerce
- 8.0 and up
- PHP
- 8.2 and up
- Order storage
- HPOS and legacy
- Multisite
- Supported
ApprovalTrail is a new plugin from Real Point Media — too new to show you an install count or a review score. What we can show you is the code it is tested against, the record it produces, and a money-back guarantee that carries the risk instead of you.
What you get either way
-
Documentation
Every screen, setting, hook and REST route is written up before you need it.
-
30-day money-back guarantee
Ask within thirty days of the charge and we refund it. No form and no reason required.
The questions shops ask
Does my customer need a WordPress account?
No. They open a tokenized link, look at the proof, and choose approve or request changes. There is no registration step at any point, and this is in the free plugin.
What does "hash-chained" actually mean here?
Every event in the record stores a SHA-256 hash that includes the hash of the event before it. Change an earlier entry and every later hash stops matching, which is visible on the record. That makes the trail tamper-evident.
Is the approval record legally enforceable?
We do not claim that, and you should be suspicious of any plugin that does. What ApprovalTrail produces is a timestamped, tamper-evident business record of what your customer was shown and what they chose. The record itself says so in plain English.
Does it work with High-Performance Order Storage?
Yes. HPOS is the primary integration path rather than an afterthought, and the plugin declares compatibility so WooCommerce will not warn you.
What happens to a job while the customer has not answered?
The order is held out of the statuses you have chosen to guard, and the order screen explains why. When the customer approves, the hold lifts by itself.
Is there a limit on proofs or orders in the free plugin?
No. Proofs, orders and versions are unlimited at every tier including free. The paid tiers add capability, not headroom.