Plugin configuration
A written setup scope for your store, theme and current plugin stack.
Request configurationWithdrawAvailable on WordPress.org
Withdraw gives customers a clear way to withdraw from a distance contract, in line with EU Directive 2023/2673 (Art. 11a). The customer looks up the order, picks items and quantities, and the shop gets a logged request with an email and a status. You process any refund yourself, in the normal order screen.
Works with: WooCommerce, HPOS, Guest orders, My Account, Multisite
EU Directive 2023/2673 asks for an easy withdrawal function in the shop, not an email address buried in the terms. Without one, withdrawal notices arrive by email, mix with the rest of the inbox and nobody knows which have been handled.
The complete withdrawal function: form, My Account button, request log and emails.
The `[withdraw_form]` shortcode renders a two-step form: look up an order by number and billing email, then select items and submit the declaration.
The customer chooses how many of each item to withdraw from and can add a reason.
A Withdraw from this order button appears under the order details and links to your withdrawal page with the order pre-filled.
Configurable from 1 to 365 days (statutory minimum 14), measured from order completion or, if never completed, from the order date.
A WooCommerce > Withdrawal Requests screen lists every request with its items, customer and one of four statuses, filterable by status.
An automatic confirmation to the customer and a notification to the shop at the address you choose.
The form intro and the model withdrawal text (Annex I.B) are edited in the settings.
The order-number plus billing-email lookup works without an account; orders are read through the HPOS-compatible WooCommerce order API.
Read more on WPPoland: EU withdrawal button: Article 11a for online shops
A page with the shortcode and a minute in the settings is enough.
Activate Withdraw alongside WooCommerce.
Create a page with the [withdraw_form] shortcode and select it under WooCommerce > Withdrawal, so the My Account button has somewhere to link.
Choose the withdrawal period, eligible order statuses, the notification email and the legal texts.
Stores selling to EU consumers that want withdrawals in one place instead of the inbox.
The store gets a visible withdrawal function matching the model in Directive 2023/2673: the customer declares, the trader acts.
A customer without an account looks up the order by number and billing email and submits the declaration.
Each request has items, a date and a status, and you refund deliberately in the order screen.
How Plogins Withdraw compares to commercial WooCommerce refund and return management plugins.
| Withdraw | Flexible Refund (WP Desk) | YITH Advanced Refund System | |
|---|---|---|---|
| Free version | Yes (full statutory withdrawal workflow) | Yes (basic refund requests) | No (paid only) |
| Directive 2011/83/EU Article 11a(4) SHA-256 confirmation hash | Yes (verifiable digital receipt) | No | No |
| Statutory 14-day deadline countdown (Reg. 1182/71 Art. 3) | Yes (legal holiday & weekend calculation) | No (simple calendar days) | No |
| Article 16 statutory return exclusions (hygiene, sealed goods) | Yes (automatic purchase-time snapshot) | PRO only | PRO only |
| WooCommerce Orders list status badge & late warning | Yes (HPOS and legacy CPT) | PRO only | PRO only |
| CSV export with spreadsheet formula injection defense | Yes (safe export included) | PRO only | PRO only |
| Open source (GPLv2) | Yes | Core GPL | Core GPL |
| Paid plan price | 100% Free (€0) | from $79/yr | from $79.99/yr |
Competitor data and pricing as of June 2026; check the vendors' sites for current pricing.
Every plugin has its own documentation with setup walkthroughs. Bugs and questions go to the public GitHub repository for that plugin, we answer in the open.
Maintenance status
This plugin is maintained. We have announced no end-of-support date, and when we do it will say so here and in a release.
Send the store context in writing. You will receive a scoped recommendation, without a sales call.
A written setup scope for your store, theme and current plugin stack.
Request configurationCheck the plugin against checkout, HPOS, blocks, theme code and critical integrations.
Request an auditA scoped connector or extension when the standard plugin stops short of your workflow.
Describe the integrationYour email is used to answer this request only. Marketing messages require a separate, explicit opt-in.
No. Withdraw records the withdrawal declaration and tracks its status, and you process any refund in the normal WooCommerce order screen. That matches the legal model: the customer declares, the trader acts.
Yes. Customers look up their order with the order number and the billing email used at checkout, so no account is needed.
From the order completion date (a delivery proxy) or, if the order was never completed, from the order date. You set the length in the options, from 1 to 365 days, with a statutory minimum of 14 days.
Yes. The form lists the order items with quantity fields, so the declaration can cover the whole order or selected units.
No. The plugin provides the technical withdrawal function and editable texts. Adapt the period and wording to your jurisdiction and the statutory model withdrawal form.
Yes. Orders are read through the WooCommerce order API, which is HPOS-compatible.
Yes. By default a guest opens the form with the order number and billing email. If you turn on the one-time link option, the form emails a link to the order's billing address instead.
Yes. CSV export is available from the requests screen and uses the active status filter and search.
Withdraw is 100% free and open source, built specifically for EU consumer law compliance under Directive 2011/83/EU. It includes SHA-256 digital confirmation hashes (Art. 11a(4)), statutory deadline tracking under Regulation 1182/71, and formula injection safe CSV export. Flexible Refund starts at $79/yr for advanced features, and YITH Advanced Refund System costs $79.99/yr. Pricing as of June 2026.
A withdrawal form, a My Account button, a request log and emails. The full FREE edition under GPL.
Get it on WordPress.orgThe free edition is the complete withdrawal function, with no account and no external service.