Customers change their minds. When they can't cancel an order themselves, they email you, call you or ask their bank for a chargeback.
WC Cancel Order adds a
Cancel Request button to their WooCommerce orders, so they can ask to cancel in a few clicks and tell you why. You stay in control: nothing is cancelled until you approve it.
Why use WC Cancel Order?
- Fewer support emails - every request arrives in one list, with the customer's reason attached.
- No surprise cancellations - each request waits for your decision, and customers can only ask to cancel orders in the statuses you allow, for example Processing but not Completed.
- Customers stay informed - they receive an email when you approve or decline their request.
- Stock stays correct - an approved request cancels the order the normal WooCommerce way, so the items go back into stock.
How it works
- The customer clicks Cancel Request on an order in My Account > Orders and enters the reason in a popup.
- The order moves to the Cancel Request status and the store receives an email.
- You review the request under WooCommerce > WC Cancel and approve or decline it.
- Approved: the order is cancelled and WooCommerce puts the stock back. Declined: the order returns to the status it had before. The customer is emailed either way.
Features
- Cancel Request button in My Account > Orders and on the order details page.
- Choose which orders can be cancelled - allow requests only for the order statuses you select.
- Cancellation details - the customer explains the reason in the popup; you can make it required.
- Your own note in the popup - for example your cancellation policy or dispatch cut-off time (HTML allowed).
- Guest orders - guests get a "Want to cancel this order?" link in their order emails that opens a secure cancellation page, no account needed.
- Request list under WooCommerce > WC Cancel with the date, status and details of every request; view, approve or decline each one in a popup.
- Three email notifications - Cancellation Request Received (to the store), Approved and Declined (to the customer). Edit the recipients, subject and heading, or switch an email off, under WooCommerce > Settings > Emails.
- Safe decline - a declined order returns to its previous status (for example On hold), and the customer is also emailed when you move an order out of Cancel Request by hand.
- "Cancel Request" order status with its own filter in the WooCommerce Orders list, so open requests are easy to find.
- Works with High-Performance Order Storage (HPOS), the Cart and Checkout blocks, multisite and WPML. Translation ready.
Privacy
Cancellation requests (order, date and the details the customer entered) are stored in your own WordPress database. The plugin adds no tracking, sets no cookies and sends no data to external services.
Premium version
WC Cancel Order Pro adds:
- Partial cancellation - customers cancel specific items or quantities instead of the whole order.
- Refunds on approval - automatic gateway refund, manual refund or store wallet credit, with transaction IDs recorded, and automatic restocking.
- Store wallet - refunded amounts become a wallet balance customers can spend at checkout, with a wallet dashboard for admins.
- Cancellation fee - a fixed amount or a percentage of the order, shown to the customer before they confirm and deducted from the refund.
- More control - cancellation reasons as radio buttons, required or optional additional text, immediate cancellation for the statuses you choose, the order status after approval or decline, the user roles that may cancel, and a time limit after which the button is hidden.
- Bigger stores - one list for full and partial requests with bulk actions, plus Ultimate Member and WooCommerce Subscriptions support.
[youtube
https://youtu.be/Mg91R_JCGEY]
For developers
wc_cancel_order_btn filter - change the Cancel Request action ($actions, $order).
wc_cancel_settings_order_status filter - the order statuses offered in the settings.
wc_cancel_declined_status filter - the status a declined order returns to ($status, $order).
wc_cancel_settings filter - the settings fields.
wc_cancel_request action - runs when a customer submits a request ($order_id).