Skip to content
WPExpertsHub
  • Plugins
  • WooCommerce
  • Services
  • Support
0 Explore Plugins
Esc

Popular User Security Guard for WordPress Media and Database Cleaner for WordPress Backup & Restore by WpExperts Hub

  • Plugins
  • WooCommerce
  • Services
  • Support
  • Cart (0)
Explore Plugins My Account
  1. Home
  2. Blog
  3. How to Let Customers Cancel WooCommerce Orders

How to Let Customers Cancel WooCommerce Orders

Published 11 October 2026 · 7 min read
In short

Set up cancellation requests in WooCommerce so customers ask from My Account or an email link, and you approve or decline each one.

Contents8 sections
  1. 01When to allow cancellations, and when not
  2. 02What you need
  3. 03Step-by-step setup
  4. 04What the customer does
  5. 05Approving or declining, and which emails go out
  6. 06Good to know and troubleshooting
  7. 07When you need refunds, fees or partial cancellations
  8. 08Links

Install WC Cancel Order, choose which order statuses may be cancelled, and customers get a Cancel Request button in My Account → Orders. Every request waits for you under WooCommerce → WC Cancel, and nothing is cancelled until you approve it. The free plugin cancels the order but does not refund the payment, so you refund from the order screen as usual.

When to allow cancellations, and when not

Eligibility depends on the order status and on whether an earlier request was already decided. There is no limit by user role and no time limit, so the statuses you select are your main control.

  • The defaults are Pending payment, Processing and On hold. The plugin replaces WooCommerce’s own Cancel link with Cancel Request, so a Pending payment order no longer offers an immediate cancel.
  • Any status you leave unselected shows no button. Completed can be selected; Cancelled, Refunded, Failed, Cancel Request and Draft cannot.
  • A request always covers the whole order. The free plugin cannot cancel single items or quantities.
  • Once a request is approved or declined, the button never returns for that order.
  • Instant cancellation, time limits and role limits are not in the free plugin (see the Pro section).

What you need

  • WordPress 6.7 or later and PHP 8.0 or later.
  • WooCommerce 8.0 or later, active and installed in the folder woocommerce. Without it the plugin does nothing and shows no message.
  • Pretty permalinks (anything except Plain) for the guest cancellation page.
  • A working WordPress mail setup, because the plugin sends its emails through WooCommerce’s email system.

Step-by-step setup

  1. Check that Settings → Permalinks is not set to Plain.
  2. Open Plugins → Add Plugin, search for “WC Cancel Order”, then click Install Now and Activate.
  3. Open WooCommerce → Settings → WC Cancel. In the admin menu and settings the plugin appears as “WC Cancel”.
  4. Under Allow cancellation requests for order statuses, keep the defaults or choose your own. If you clear the list and save, it stays empty and nobody can request.
  5. Decide on Require cancellation details. A fresh install treats it as on, so the customer must write something.
  6. In Note shown in the cancel popup, add your cancellation policy if you have one. Basic HTML such as links and bold text is kept.
  7. Leave Allow guest cancellation on if guests should be able to ask from an email link. Leave Delete all data when the plugin is deleted off unless you want settings and requests removed on deletion. Click Save changes.
  8. Open WooCommerce → Settings → Emails → Cancellation Request Received and set the recipient. It defaults to the site admin email.
  9. Test it: place an order, sign in as that customer, click Cancel Request in My Account → Orders, enter some text and click Confirm Cancellation. Then check WooCommerce → WC Cancel.

What the customer does

Logged-in customers

The Cancel Request button appears on the orders list and the order page when the order is in a selected status. It opens a popup titled “Request Order Cancellation” with your note and a “Cancellation details” box. After Confirm Cancellation, the customer sees “Cancellation request sent successfully.” and the order moves to the Cancel Request status. If Require cancellation details is on and the box is empty, the popup shows “Cancellation details required!” and does not send.

Guests

With Allow guest cancellation on, customer emails gain a “Want to cancel this order?” block with a “Cancel Order” link. It opens a page for that one order at /guest-cancel-req/ with the same button and popup. Orders placed before the plugin was installed have no cancel key and get no link.

The docs add a caution: anyone holding the link can see the order details on that page and send a cancellation request. The link goes to the order’s billing email address, and customers should not forward it.

Approving or declining, and which emails go out

Open WooCommerce → WC Cancel. The “Cancellation Requests” screen has Pending, Approved and Declined links with counts and a “Search orders” box. Each row has View Request. A pending request also has Approve Request and Decline Request, and both ask you to confirm. The free plugin has no bulk actions.

  • Approve: the order becomes Cancelled and WooCommerce restores stock, if the order had reduced it.
  • Decline: the order returns to the status it had before the request, or to Processing if none was stored.

The plugin adds three emails under WooCommerce → Settings → Emails:

  • Cancellation Request Received: goes to the recipients you set (the site admin email while the field is empty) when the order moves to Cancel Request.
  • Cancellation Request Approved: goes to the order’s billing email when you approve.
  • Cancellation Request Declined: goes to the order’s billing email when you decline.

You can switch each email off or change its subject, heading and format. Only the “Received” email has a recipients field.

Refunds

The plugin never refunds a payment. After approving a paid order, refund it yourself from the order screen.

Good to know and troubleshooting

  • No Cancel Request button: the order’s status is not selected, a request was already decided, or the page is the guest page with Allow guest cancellation off.
  • Button does nothing: the popup script loads only on the My Account orders, view-order and order-received pages and on pages containing [wc_cancel_order_details]. Also check the browser console and that the theme calls wp_footer().
  • Guest link shows the home page or a 404: permalinks are set to Plain.
  • No guest link in an email: guest cancellation is off, the order has no cancel key, its status is not selected, or a request was already decided.
  • “Cancellation request could not be processed”: the security token expired (reload the page), the status is not allowed, a request was already decided, or the visitor has no valid key.
  • Stock did not go back: WooCommerce restores stock only if the order had reduced it. Check the order notes and the product’s stock management.
  • No emails arrive: the email is disabled, the “Received” recipient is wrong, the order has no billing email, or WordPress cannot send mail.
  • Double clicks: requests for one order are processed one at a time, so you get one request and one email.
  • Changing the status yourself: since version 3.7.0, moving an order from Cancel Request to Cancelled marks the request approved and sends the approved email.

The full documentation covers privacy, developer hooks and the changelog.

When you need refunds, fees or partial cancellations

WC Cancel Order Pro is the paid version. It uses the same settings, request table and statuses, and it deactivates the free plugin when you activate it. According to its documentation, it adds:

  • Refund on approval by automatic gateway refund, manual refund or wallet credit. No refund method is enabled by default, and gateway refunds need a gateway that supports refunds.
  • An optional cancellation fee, fixed or a percentage of the order total, taken off the refund.
  • Partial cancellation of single items or quantities, off until you enable it.
  • Instant cancellation for statuses you choose, which changes the order status only and makes no refund.
  • Bulk approve and decline, limits by user role and order age, and reasons you define.

If you move from the free plugin, review the Pro settings first: by default, orders in Processing and On hold can be cancelled at once without your approval.

Links

Plugin page: WC Cancel Order. Settings reference: WC Cancel Order documentation. More tools: Browse all plugins.

WC Cancel OrderLet customers request WooCommerce order cancellations from My Account, then approve or decline each one
View plugin →
WC Cancel Order ProFull and partial order cancellation requests for WooCommerce
View plugin →
More tutorialsKeep reading.
Limit Login Attempts on WordPress to Stop Brute-Force Attacks → How to Automatically Ask for Reviews After a WooCommerce Order → How to Split a WooCommerce Order into Partial Shipments →
WPExpertsHub

WordPress and WooCommerce plugins, custom development and technical support.

support@wpexpertshub.com

Products

  • All plugins
  • WooCommerce plugins
  • WordPress plugins
  • Free plugins

Services

  • WordPress development
  • WooCommerce development
  • Maintenance & optimization
  • Migration & security
  • API & integrations

Resources

  • My downloads
  • Documentation
  • Blog
  • Plugin support
  • Refund policy

Company

  • Services
  • Contact
  • My account
© 2026 WpExperts Hub. All rights reserved.
  • Privacy Policy
  • Terms of Service
  • Refund Policy