WooCommerce includes an optional customer review request email that is scheduled after order completion and should be cancelled when the order is later cancelled, refunded, or trashed. Custom status flows and queue delays can leave stale review actions behind.
Use this before enabling review requests broadly, after changing custom order statuses, or when a customer receives a review invitation for a refunded or cancelled purchase.
Quick answer
WooCommerce Customer Review Request Email Cancellation Audit should be handled with a narrow evidence-first workflow: record feature settings, schedule controlled orders, change order states, then verify the result before making broader changes.
What to check first
- Enable the feature on staging and record the configured delay, email ID, action hook, and tokenized review URL.
- Complete one test order and confirm exactly one future review action is scheduled.
- Cancel, refund, and trash separate test orders before the send time and capture each action result.
- Test custom completed-like statuses and plugins that reschedule or duplicate transactional email actions.
- Confirm the review page remains read-only, tokenized, and unavailable for cancelled test orders.
Diagnostic table
Use this table to keep the work practical. It connects the symptom to evidence and a verification step.
| Action | Evidence to collect | How to verify |
| Record feature settings | Enable the feature on staging and record the configured delay, email ID, action hook, and tokenized review URL. | One completed eligible order creates one scheduled review request. |
| Schedule controlled orders | Complete one test order and confirm exactly one future review action is scheduled. | Refunded, cancelled, and trashed orders have no pending or completed review email action. |
| Change order states | Cancel, refund, and trash separate test orders before the send time and capture each action result. | Custom statuses have an explicit documented eligibility and cancellation rule. |
| Inspect cancelled actions | Test custom completed-like statuses and plugins that reschedule or duplicate transactional email actions. | No customer receives a duplicate or stale review invitation during the test window. |
Why this usually happens
- Custom order status plugins may bypass the transition WooCommerce uses to cancel the action.
- A delayed queue worker can process an action after the operator expects it to be gone.
- Cloned orders or retries can create more than one scheduled review request.
- Manual refunds and full order cancellation may follow different hooks.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
wp action-scheduler list --search='review' --fields=action_id,hook,status,scheduled_date,args
wp wc order get 10661 --user=1 --fields=id,status,date_completed,date_modified
# Use separate test orders for refund, cancel, trash, and custom-status paths.
Safe fix order
Do the work in a sequence that makes each result easy to prove. Stop if a step produces new evidence that changes the incident scope.
- Record feature settings
- Schedule controlled orders
- Change order states
- Inspect cancelled actions
- Verify tokens and delivery
What to tell the client or owner
Report feature flag, delay, order IDs, status transitions, action IDs, cancellation results, token test, and mailbox evidence.
Production verification checklist
- One completed eligible order creates one scheduled review request.
- Refunded, cancelled, and trashed orders have no pending or completed review email action.
- Custom statuses have an explicit documented eligibility and cancellation rule.
- No customer receives a duplicate or stale review invitation during the test window.
Mistakes to avoid
- Do not judge the fix by one browser or the homepage only.
- Do not delete evidence before recording usernames, file paths, timestamps, and response headers.
- Do not add a cache, security, or tracking plugin while the original problem is still unclear.
- Do not leave test users, temporary debug logs, or broad API keys active after verification.
When HandL WP should help
Bring in help when this affects leads, checkout, search visibility, malware risk, paid media reporting, or a client production site. HandL WP can trace the issue through WordPress, hosting, cache, tracking, and Search Console, then verify the workflow after the technical fix.
If this is active on a production site, audit WooCommerce scheduled email behavior.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Helpful references
Include every custom order status in cancellation tests
Stores with return, exchange, chargeback, or fraud statuses should use the custom status review-request cancellation test to confirm the exact pending Action Scheduler row is removed and does not reappear after another transition.