The EU Withdrawal Button becomes mandatory on 19 June 2026, here’s what every WooCommerce store needs to do

A new EU directive quietly takes effect on 19 June 2026 and if you sell to consumers anywhere in the EU, your WooCommerce store needs to act. Directive (EU) 2023/2673 amends the longstanding EU Consumer Rights Directive for ecommerce and introduces one concrete, non-negotiable requirement: a clearly visible, digital ‘withdrawal button’ must be present on every consumer-facing e-commerce site so consumers can exercise their legal right of withdrawal online.

This is not a theoretical risk. It is an active compliance obligation, and the deadline is 19 June 2026.

In this article:

  1. What the law actually requires
  2. What counts — and what doesn’t
  3. How this affects WooCommerce stores specifically
  4. What a compliant WooCommerce implementation looks like
  5. What your next step is

Does this apply to my store?
Yes, if you sell to consumers (B2C) anywhere in the EU, including if your store sells to both businesses and consumers. The requirement applies to the consumer-facing part of any store. Only stores that sell *exclusively* to other businesses (pure B2B) are exempt.

1. What the law actually requires

Consumers in the EU have had a 14-day right of withdrawal for distance contracts (online purchases) for years. What changes now is how that right is exercised. Previously, a “contact us” form or an email address in the footer was considered sufficient. From June 2026 it is not.

The law now requires a dedicated, unambiguous, electronic function a button or equivalent mechanism that initiates a structured, legally defined withdrawal process. It must be easy to find and use. It cannot be buried behind a help centre, a chat widget, or a generic support journey.

Important: This does not create a new customer right. Consumers already had the right to withdraw. What changes is that you must now give them a clear digital path to use it — or face potential enforcement action from national consumer protection authorities.

2. What counts — and what doesn’t

Not every return-related link satisfies this requirement. Here is a straightforward breakdown:

  • ❌ A generic “contact us” or “returns policy” page link
  • ❌ A chat widget that routes to a support agent
  • ❌ An email address with instructions to write “WITHDRAWAL” in the subject line
  • ✅ A dedicated withdrawal form that collects the necessary information in a structured way
  • ✅ A clearly labelled button or link that leads directly to that form
  • ✅ A flow that confirms the withdrawal request to the customer and creates a logged record for the merchant

The spirit of the law is traceability and accessibility. The consumer must be able to act without friction, and the merchant must have a clear record.

Need help getting compliant?

We have already set up and tested a working implementation path for WooCommerce. Let’s talk about what it looks like for your store.

3. How this affects WooCommerce stores specifically

If you sell to consumers on WooCommerce, this applies to you. WooCommerce does not include a built-in WooCommerce withdrawal button that meets this standard. The standard “refund” flow in WooCommerce is merchant-initiated, not consumer-initiated, and it does not produce the kind of structured withdrawal record the directive envisions.

That means store owners need to add this functionality through a plugin, a custom build, or a third-party returns platform. For most small to medium WooCommerce stores, a plugin is the most practical and cost-effective route.

4. What a compliant WooCommerce implementation looks like

Implementing a compliant WooCommerce withdrawal page is not technically complex, but the required functionality is well-defined. To satisfy the right of withdrawal on WooCommerce, a compliant setup needs to deliver:

  1. A clearly visible link to the page — typically in the footer
  2. A dedicated page with a structured withdrawal form customers can fill in themselves
  3. A withdrawal policy displayed alongside the form
  4. An automatic email confirmation to the customer once they submit a request
  5. A logged record of all requests in the admin for the merchant to action

How you get there — whether through a plugin, a custom build, or an enterprise returns platform — depends on the size and complexity of your store. There is no single right answer, and the right solution for a straightforward store with one market will look different from one handling multiple languages, large order volumes, or complex return workflows.

Our approach: We have been preparing for this change and have tested and evaluated implementation options on behalf of our clients. We are ready to guide you toward the right fit for your specific setup.

Here is what a compliant WooCommerce withdrawal page looks like in practice

Because there is no single right answer, we evaluated several implementation paths before settling on what we recommend to our clients. In practice, three approaches cover most WooCommerce stores: a no-code setup using an existing form plugin (suitable for very simple stores with low return volumes), a dedicated withdrawal plugin such as Revoker (the right fit for most stores), and a custom build integrated with an existing returns platform (for enterprise stores with complex workflows).

What matters is not which path you choose, but that the end result is structured, traceable, and consumer-facing. Below is what a compliant setup actually looks like — first the form itself, then the same form embedded inside a complete Right of Withdrawal page on a live store

Standalone withdrawal form

A structured withdrawal form: order ID, customer email, item-level details (SKU and quantity), a clear withdrawal declaration, optional reason, return address, and an irrevocable confirmation step. This is the minimum a “withdrawal button” must lead to under Directive 2023/2673 — a “contact us” form does not qualify.

Full right of withdrawal page

The same form embedded into a complete Right of Withdrawal page on a WooCommerce store running on Qala, our WordPress and WooCommerce platform. The policy text above the form covers the right of withdrawal, the effects of withdrawal, and the explicit exclusions under Article 16 — alongside a reference to Directive (EU) 2023/2673. This is what compliance looks like end-to-end.

A closer look at Revoker, our most-recommended plugin for most stores

Of the three paths above, Revoker is the option we recommend most often. It is a dedicated WooCommerce plugin built specifically for the requirements of Directive 2023/2673. Which means the structured form, the policy display, the logged record, and the automatic customer confirmation all come out of the box. What sets it apart is that the customer never has to hunt for a link or type in an order ID: the withdrawal flow is embedded directly into their order confirmation page.

Here is the customer journey, step by step:

Step 1 — The withdrawal option appears directly on the order page

Revoker withdrawal block displayed directly on a WooCommerce order confirmation page, showing remaining withdrawal period and Withdraw order button

Revoker places a clear withdrawal block directly on the customer’s order page, with the remaining withdrawal window shown automatically. The right is exercised in the same place the order lives — no footer hunt, no support email, no order ID to look up.

Step 2 — The customer selects which items to withdraw

Revoker confirm-withdrawal modal on a WooCommerce store with item-level checkboxes for selective withdrawal and an optional reason field

A structured dialog lets the customer withdraw from the entire order or pick specific items — a meaningful differentiator versus a basic form plugin, which typically forces an all-or-nothing return. An optional reason field captures service-improvement signal without making it a friction point.

Step 3 — Timestamped confirmation and logged record

Revoker withdrawal-successful confirmation modal showing a unique Withdrawal ID and timestamp as proof for the customer

On submission, the customer immediately receives a unique Withdrawal ID and a timestamped confirmation, exactly the kind of structured record the directive expects. The same record is logged in the WooCommerce admin for the merchant, satisfying the traceability requirement in one step.

What Revoker handles for you out of the box:

  • The withdrawal entry point on the customer’s own order page — no footer link required
  • Item-level selection, so customers can withdraw partial orders rather than the whole basket
  • Automatic calculation of the remaining withdrawal window per order
  • A unique Withdrawal ID and timestamp generated for every request — both customer- and merchant-facing
  • Automatic email confirmation to the customer
  • A logged, searchable record of every request in the WooCommerce admin

That said, Revoker is not the only path. For very simple stores with low return volumes, a no-code form plugin can be enough. For enterprise stores with complex returns workflows, a custom build integrated with an existing returns platform may make more sense. Our role is to match the option to the store, not push one plugin.

5. What is your next step?

If you run a WooCommerce store selling to EU consumers, our recommendation is simple: do not wait. The implementation is not complex, but it does require some decisions (what return address to display, how many days to allow, where to place the link) that are best made now rather than under pressure.

We are proactively helping our clients get their WooCommerce withdrawal page in place ahead of the 19 June 2026 deadline. If you want to discuss what this means for your specific store, or get a quote for implementation, get in touch.

Need help getting compliant?

We have already set up and tested a working implementation path for WooCommerce. Let’s talk about what it looks like for your store.

FAQ

Do I need a separate withdrawal button for each EU country I sell to?

No. The directive does not require a separate button for each EU country. One properly implemented withdrawal function can be enough, provided it is clearly available in the relevant consumer journey, uses clear and unambiguous wording, remains available during the withdrawal period, and reflects the rules that apply in the consumer’s market. For multilingual WooCommerce stores, the withdrawal flow should normally be included in your standard translation and localisation process.