Title: Cancello – Withdrawal &amp; Returns for WooCommerce
Author: 579 ApS
Published: <strong>July 15, 2026</strong>
Last modified: July 15, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/cancello-for-woocommerce.svg)

# Cancello – Withdrawal & Returns for WooCommerce

 By [579 ApS](https://profiles.wordpress.org/579aps/)

[Download](https://downloads.wordpress.org/plugin/cancello-for-woocommerce.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/cancello-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/cancello-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/cancello-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/cancello-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/cancello-for-woocommerce/)

## Description

Cancello gives your WooCommerce store the clear, easy-to-find order cancellation
function that EU consumer law expects — and pairs it with a complete returns (RMA)
workflow for orders that have already shipped. It works for logged-in customers **
and** guests, and every word your customers see can be edited from the admin.

From 19 June 2026, Directive (EU) 2023/2673 requires online stores selling to EU
consumers to provide an easy-to-use way to withdraw from (cancel) a distance contract.
This plugin gives you that button, the durable-medium acknowledgement, and the audit
trail to back it up. _(This plugin is a tool to help you comply; it is not legal
advice.)_

**Place it anywhere**

 * Shortcode: `[cancello_withdrawal_button]` (short alias: `[cancello_button]`)
 * Elementor: the **Cancel Order Button** widget, in the WooCommerce widget category.
 * It also appears automatically on the native **My Account  Orders** table.

**A clear customer journey**

 * **Logged-in customers** see their recent orders, each with a Cancel or Return
   action.
 * **Unshipped orders**  a confirmation step (a popup _or_ an inline “please confirm”
   link — your choice)  the order is cancelled immediately. The confirmation also
   works completely **without JavaScript**, as the regulation expects.
 * **Shipped orders**  a customisable returns page: full or partial return, an item
   picker, a reason dropdown you control, and a details field.
 * **Guests** are first asked whether they have an account. If they do, they’re 
   sent to log in; if not, they look up their order with their email + order number
   and get exactly the same cancel/return flow.

**Built for compliance**

 * **Durable-medium receipt** — the customer is emailed an acknowledgement of their
   withdrawal, secured with a SHA-256 verification hash.
 * **Audit trail** — every request is stored with timestamp, IP and user agent, 
   so you can prove what happened and when.
 * **Article 16 exclusions** — flag individual products or whole categories as exempt
   from the right of withdrawal (e.g. custom-made or sealed goods); excluded orders
   are held for your review instead of auto-cancelled.
 * **Checkout consent** — optional confirmations for digital content and services,
   so the customer acknowledges they may lose the right of withdrawal.

**Make it yours — no code**

 * **Every customer-facing text is editable** from the settings screen.
 * **Built-in language switch** with a ready-made Danish text set, plus standard`.
   po`/`.mo` translation support.
 * **Button styling controls** with a live preview: colours and hover colours, font
   size, corner radius, full width, alignment, and independent padding for all four
   sides.
 * One click to **reset all texts** back to the defaults.

**Admin tools**

 * A dedicated **Requests** screen lists every cancellation and return with its 
   status.
 * **Email notifications** to you and the customer — with a **separate recipient
   address for cancellations and for returns** if you want them handled by different
   people.
 * **Import / export** your settings and texts, and **export / import the requests
   log** (imports are appended, never overwritten) — handy for backups or moving
   between sites.
 * Choose exactly **which order statuses** count as cancellable and which count 
   as shipped.

**Reliable by design**

 * **HPOS** (High-Performance Order Storage) compatible.
 * **Cache-friendly** — the flow issues a fresh security token on each use, so it
   keeps working behind full-page caching.
 * **No accidental duplicates** — double-clicks and double submissions are prevented
   on both the browser and the server, so a slow connection never creates two records.
 * No automatic refunds: cancelling sets the order to _Cancelled_ and notifies you,
   leaving you in full control of any refund.

## Installation

 1. Install via **Plugins  Add New  Upload**, or upload the plugin folder to `/wp-content/
    plugins/`.
 2. Activate the plugin (WooCommerce must be active).
 3. Go to **Cancel Orders  Settings** to set your statuses, texts, styling and email
    recipients.
 4. Add `[cancello_withdrawal_button]` to any page, or drop the **Cancel Order Button**
    Elementor widget where you want it. The action also appears on the My Account orders
    table automatically.

## FAQ

### Do I need this for the new EU rules?

If you sell to EU consumers, from 19 June 2026 you must offer an easy way for customers
to withdraw from (cancel) their order. This plugin provides that button, the acknowledgement
email and the record-keeping. It is a tool to help you comply and does not constitute
legal advice.

### How does the plugin know an order has shipped?

You choose which order statuses count as “shipped” (default: _Completed_). Orders
in those statuses show the return flow; all other eligible orders show the cancellation
flow.

### Does cancelling refund the customer automatically?

No. Cancelling sets the order to _Cancelled_ and notifies you; you issue any refund
manually in WooCommerce.

### Can guests cancel or return without an account?

Yes. Guests verify ownership with their email address and order number, then get
the same cancel/return flow as logged-in customers.

### Can I change the wording?

Yes — every customer-facing text is editable in the settings, and you can reset 
everything to the defaults with one click. A Danish text set is included.

### Does it work without JavaScript?

Yes. The two-step withdrawal confirmation has a full no-JavaScript fallback.

### Is HPOS supported?

Yes, the plugin declares HPOS compatibility.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Cancello – Withdrawal & Returns for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ 579 ApS ](https://profiles.wordpress.org/579aps/)

[Translate “Cancello – Withdrawal & Returns for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/cancello-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/cancello-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/cancello-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/cancello-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/cancello-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First public release.
 * Easy-to-find cancellation / withdrawal button via shortcode, Elementor widget
   and the My Account orders table.
 * Works for logged-in customers and guests (email + order-number lookup).
 * Unshipped orders: two-step confirmation with a no-JavaScript fallback. Shipped
   orders: full/partial returns (RMA) flow with item selector and a customisable
   reason dropdown.
 * Durable-medium receipt email with SHA-256 verification and a full audit trail(
   timestamp, IP, user agent).
 * Article 16 product/category exclusions and checkout consent for digital content
   and services.
 * Every customer-facing text editable, built-in language switch with a Danish text
   set, and one-click reset to defaults.
 * Button styling controls with live preview (colours, hover, font size, radius,
   four-sided padding, width, alignment).
 * Separate cancellation/return email recipients; settings and requests-log import/
   export.
 * Duplicate-submission protection on the browser and server. HPOS compatible and
   cache-friendly.

## Meta

 *  Version **1.0.0**
 *  Last updated **23 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [cancel-order](https://wordpress.org/plugins/tags/cancel-order/)[eu](https://wordpress.org/plugins/tags/eu/)
   [returns](https://wordpress.org/plugins/tags/returns/)[RMA](https://wordpress.org/plugins/tags/rma/)
   [withdrawal](https://wordpress.org/plugins/tags/withdrawal/)
 *  [Advanced View](https://wordpress.org/plugins/cancello-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/cancello-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/cancello-for-woocommerce/reviews/)

## Contributors

 *   [ 579 ApS ](https://profiles.wordpress.org/579aps/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/cancello-for-woocommerce/)