# The online withdrawal button on WooCommerce.

> From 19 June 2026, Italian online shops selling to consumers must offer an online function to withdraw from the contract. We wrote the plugin that implements it, without forcing anyone to register.

- Sector: E-commerce
- Practice: Compliance
- Year: 2026
- URL: https://cloudfactory.it/en/work/woocommerce-online-withdrawal-button/

## In brief

Legislative Decree 209/2025, implementing EU Directive 2023/2673, added article 54-bis to the Italian Consumer Code: B2C shops must offer an online withdrawal function. Our plugin creates the withdrawal page, finds the order by number and email even for guest checkouts, handles partial withdrawal, sends a receipt with a PDF and keeps an exportable log.

- **19.06.2026** the obligation comes into force
- **14** days standard withdrawal period, from delivery
- **1.2.4** plugin version in production

## Context

We run several WooCommerce shops for clients. With the obligation approaching, each shop needed the same function, done properly and maintained over time, while some vendors were pitching third-party solutions.

## The problem

The rule asks for a clearly visible function, available for the whole withdrawal period, with an explicit confirmation and a receipt on a durable medium. Many customers buy without an account, so requiring a login is not an option: it risks hindering withdrawal rather than enabling it.

## What we did

1. **A page that creates itself.** On activation the plugin creates the /recesso page with the form. The link goes in the footer, reachable from every page.
2. **No account needed.** Customers find their order with order number and email. It works the same for guest orders and registered customers.
3. **Partial withdrawal and exclusions.** Items are selected one by one and re-checked server-side. Products excluded by law, such as made-to-order or perishable goods, are flagged on the product page.
4. **Deadlines computed.** The 14 days run from delivery. Without shipment tracking, the plugin estimates delivery with a configurable number of days and offers a filter to use the real date when available.
5. **Receipt and log.** Native WooCommerce emails with a PDF attached, a request number, receipt delivery status, an admin panel with CSV export. Compatible with HPOS order storage.

## How it went

The plugin has been in production on a B2C shop since version 1.2.4, after testing on real orders. For a subscription video platform that doesn't run on WooCommerce, we did the compliance analysis against the same article, with the changes to request from the vendor.

## Tools

WordPress, WooCommerce, PHP 8.4, HPOS, FPDF, WP Mail SMTP

## FAQ

### Does the customer need an account to withdraw?

No, and requiring one is risky. The plugin finds the order by number and email.

### Is a generic contact form enough?

No. It takes a dedicated, clearly visible function with explicit confirmation and a receipt. The plugin covers the technical requirements; the legal assessment of each shop stays with your adviser.

---

Cloudfactory S.r.l., Rome. Contact: hello@cloudfactory.it
