WC Cancel Order

Description

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

  1. The customer clicks Cancel Request on an order in My Account > Orders and enters the reason in a popup.
  2. The order moves to the Cancel Request status and the store receives an email.
  3. You review the request under WooCommerce > WC Cancel and approve or decline it.
  4. 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: WC Cancel Order Pro

Turn cancellation requests into finished refunds. The Pro version handles the whole process, from the customer’s request to the money back, and lets customers cancel single items too.

  • ✅ Partial cancellation – customers cancel single items or quantities, not only the whole order.
  • ✅ Refund on approval – automatic gateway refund, manual refund or store wallet credit, with the transaction ID recorded.
  • ✅ Store wallet – refunds become a balance customers spend at checkout, with a wallet overview for admins.
  • ✅ Cancellation fee – a fixed amount or a percentage, shown before the customer confirms and taken off the refund.
  • ✅ Automatic restock when a refund is issued.
  • ✅ Your own cancellation reasons as radio buttons, plus an optional or required comment field.
  • ✅ Instant cancellation without approval for the order statuses you choose.
  • ✅ Full control – the order status after approval or decline, the user roles that may cancel, and a time limit after which the button disappears.
  • ✅ One request list for full and partial requests, with bulk approve and decline.
  • ✅ Works with Ultimate Member and WooCommerce Subscriptions.
  • ✅ Dedicated support from the plugin developers.

👉 Get WC Cancel Order Pro

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).

Screenshots

Installation

  1. Go to Plugins > Add New Plugin, search for “WC Cancel Order”, then install and activate it. WooCommerce must be active.
  2. Go to WooCommerce > Settings > WC Cancel and choose the order statuses that can be cancelled, whether the cancellation details are required, your popup note and guest cancellation.
  3. Review the requests you receive under WooCommerce > WC Cancel.

FAQ

Which orders can customers cancel?

Only orders in the statuses you select under WooCommerce > Settings > WC Cancel. Orders in other statuses show no Cancel Request button.

Is the payment refunded automatically?

No. Approving a request cancels the order and WooCommerce restores the stock, but the free version does not refund the payment. Refund it from the order screen as usual. WC Cancel Order Pro can refund through the payment gateway or as store wallet credit when you approve.

What happens when I decline a request?

The order goes back to the status it had before the request (for example Processing or On hold), and the customer receives the “Cancellation Request Declined” email.

Can guests cancel their orders?

Yes, when “Allow guest cancellation” is enabled. Guests find a “Want to cancel this order?” link in their order emails, which opens a secure cancellation page for that order.

Can I change the emails?

Yes. Go to WooCommerce > Settings > Emails and open Cancellation Request Received, Cancellation Request Approved or Cancellation Request Declined to edit the recipients, subject, heading and format, or to switch an email off.

Can customers cancel only some items of an order?

Not in the free version. Partial (item-level) cancellation is part of WC Cancel Order Pro.

Where can I get support or talk to other users?

Please open a topic in the support forum.

Where can I get support for the premium version?

Please contact us directly. The WordPress.org forum is for the free version only.

Reviews

Morso 26, 2022 1 reply
this plugin is perfect and best
Siilo 8, 2022
first i found another plugin but that didn't worked then i installed this and it works like a charm with my theme. Quick setup and no problems encountered.
Siilo 8, 2022
I have used the plugin in the free version, but I can’t wait to purchase the pro version. Congrats for the great and best support work and technical elaboration. Thank you guys!
Read all 23 reviews

Contributors & Developers

“WC Cancel Order” is open source software. The following people have contributed to this plugin.

Contributors

“WC Cancel Order” has been translated into 12 locales. Thank you to the translators for their contributions.

Translate “WC Cancel Order” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

3.6.2 – 28/09/2026

  • Fix – Cancellation emails (request received, approved, declined) were not being sent since 3.6.1.
  • Fix – Declining a cancellation request now restores the order’s previous status (e.g. On hold or Pending payment) instead of always setting it to Processing. Requests made before this update still fall back to Processing.
  • Fix – The “Declined” email is now also sent when an admin moves an order out of Cancel Request by hand to any status other than Cancelled, Refunded or Failed.
  • Fix – The cancellation popup no longer reports success when the request could not be processed; it now shows an error instead.
  • Fix – Guests can now cancel from the order-received (thank you) page.
  • Fix – Plain-text Approved/Declined customer emails no longer include admin-only links and SKUs.
  • Fix – The “Want to cancel this order?” link in customer emails is only shown when the order can actually be cancelled, and is proper plain text in plain-text emails.
  • Fix – Removed the duplicate Cancel Request button on the guest cancellation page.
  • Fix – Clearing all “Allow cancellation requests for order statuses” in the settings now saves instead of restoring the defaults.
  • Fix – PHP 8.2+ deprecation notice, request dates on non-HPOS stores, and escaping in the admin request popup.
  • Tweak – Plugin Check: prepared SQL in the database index upgrade; tested up to WordPress 7.1 and WooCommerce 11.1.

3.6.1 – 10/09/2026

  • Perf – Index added on db columns.
  • Perf – Front-end cancel assets (scripts, styles and translations) are now only registered and localized on pages that actually use the cancel flow instead of on every page load.

3.6 – 15/08/2026

  • Fix – Cancellation request dates now display in the site’s configured timezone (timestamps stored as GMT and rendered via WordPress date functions).
  • Tweak – Plugin Check compliance: added nonce verification, sanitized and escaped input/output, prepared database queries, and documented schema changes.

3.5.1 – 30/10/2025

  • Fix – Compatibility check and tweaks.

3.5 – 08/10/2024

  • Fix – Compatibility check and hook fixed.

3.4 – 04/01/2024

  • Tweak – HPOS Compatibility.

3.3 – 23/08/2023

  • Tweak – Compatibility check.

3.2 – 11/03/2023

  • Fix – Sanitizing data fixed.

3.1.9 – 15/02/2023

  • Fix – Guest cancellation 404 page issue fixed.

3.1.8 – 11/11/2022

  • Tweak – Compatibility check.

3.1.7 – 29/07/2022

  • Tweak – Minor fix and compatibility check.

3.1.6 – 25/07/2022

  • Fix – Translation string fix
  • Fix – Divi Global Header fix

3.1.5 – 20/05/2022

  • Fix – Cancel link removed from completed order email.
  • Fix – Cyrillic input allowed.

3.1.4 – 31/03/2022

  • Fix – Filters and Hooks added.

3.1.3 – 06/01/2022

  • Fix – Multisite enabled.

3.1.2 – 30/08/2021

  • Tweak – Compatibility check.
  • Fix – HTML submission in additional text fixed.

3.1.1 – 12/07/2021

  • Fix – Admin setting issue fixed.

3.1 – 11/07/2021

  • Fix – Compatibility issue fixed.
  • Fix – Admin settings added.
  • Fix – Improved admin interface.
  • Fix – Improved Functionality.

3.0 – 30/08/2020

  • Fix – Compatibility issue fixed.
  • Fix – Improved admin interface.
  • Fix – Functionality Tweaks.

2.9.1 – 14/11/2019

  • Fix – Minor Tweaks

2.9 – 05/03/2019

  • Fix – Inventory restore issue fix on order cancellation.

2.8 – 04/01/2019

  • Fix – Email template issue fixed.
  • Fix – WooCommerce 3.5 emails compatibility issue fixed.

2.7 – 17/12/2018

  • Fix – WooCommerce 3.5 compatibility issue fixed.

2.6 – 18/03/2018

  • Fix – WooCommerce 3.3 compatibility issue fixed.

2.5 – 07/12/2017

  • Fix – Restore product inventory/stock when cancel request accepted.

2.4 – 01/06/2017

  • Fix – WooCommerce compatibility issue fixed.

2.3 – 04/05/2017

  • Fix – WooCommerce compatibility issue fixed.

2.2 – 26/04/2017

  • Fix – Translation string added.

2.1 – 25/03/2017

  • Fix – Admin style/script hook fixed.

2.0 – 25/02/2017

  • Fix – Email issue fixed.
  • Fix – WooCommerce compatibility issue fixed.
  • Tweak – Admin style/scripts.

1.9 – 17/05/2016

  • Fix – Shop Manager role availability fixed.

1.8 – 25/02/2016

  • Fix – WooCommerce version compatibility.

1.7 – 12/02/2016

  • Feature – Multilingual ready / Translation ready.

1.6 – 11/10/2015

  • Fix – Get Status Fatal error fixed.

1.5 – 12/04/2015

  • Fix – Restore inventory/stock after Order cancel.

1.4 – 31/03/2015

  • Fix – E-Mail Notification Fixed.
  • Fix – Minor Changes done accordingly woocommerce version 2.3.

1.3 – 22/11/2014

  • Fix – Cancel Request Approve Notification E-Mail added.
  • Fix – Tool-tip fixed for WC Cancel Order admin dashboard icons.

1.2 – 21/11/2014

  • Fix – Cancel Request Permission issue fixed.

1.1 – 10/11/2014

  • Fix – Admin css hook fixed.

1.0 – 09/11/2014

  • Initial Revision.