Cancello – Withdrawal & Returns for WooCommerce
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/.motranslation 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.