Title: EU Order Withdrawal Button for WooCommerce
Author: vendidero
Published: <strong>March 26, 2026</strong>
Last modified: August 24, 2026

---

Search plugins

![](https://ps.w.org/eu-order-withdrawal-button-for-woocommerce/assets/banner-772x250.
png?rev=3491534)

![](https://ps.w.org/eu-order-withdrawal-button-for-woocommerce/assets/icon.svg?
rev=3491534)

# EU Order Withdrawal Button for WooCommerce

 By [vendidero](https://profiles.wordpress.org/vendidero/)

[Download](https://downloads.wordpress.org/plugin/eu-order-withdrawal-button-for-woocommerce.2.4.1.zip)

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

 [Support](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/)

## Description

EU Order Withdrawal Button for WooCommerce adds compliance with the [EU directive 2023/2673](https://eur-lex.europa.eu/eli/dir/2023/2673/oj/eng)
to WooCommerce. With the help of this little plugin you may easily allow your customers
to submit (partial) withdrawal requests to their orders.

 * _Withdrawal request form_ – Use a shortcode to embed a withdrawal request form
   which works both for guest orders and registered customers.
 * _Manage withdrawals_ – Easily manage withdrawals from your WooCommerce order 
   page by either confirming or rejecting requests.
 * _Send confirmation emails_ – Automatically confirm receipt of the withdrawal 
   by email including all required information.
 * _Partial withdrawals_ – Optionally allow customers to submit partial withdrawal
   requests.
 * _GDPR ready_ – Comes with privacy policy proposal, support for personal data 
   export and erasure.
 * _WPML compatibility_ – Comes with built-in compatibility for multilingual shops
   using WPML.

#### Initial setup and withdrawal button placement

After installation, a new page (withdraw from contract) is created as a draft. This
page includes the [eu_owb_order_withdrawal_request_form] shortcode to output the
withdrawal form.

 1. Review the page created and your settings under WooCommerce > Settings > Advanced
    > Withdrawals (In case you are using our plugin [Germanized for WooCommerce](https://wordpress.org/plugins/woocommerce-germanized/)
    find your settings under WooCommerce > Settings > Germanized > General)
 2. Publish the page containing the withdrawal form shortcode
 3. Make sure that the withdrawal button is shown in your footer on shop-related pages
 4. Review the email templates provided to confirm the receipt, confirmation and rejection
    of withdrawals under WooCommerce > Settings > Emails
 5. Test the withdrawal procedure both as a guest and as a customer

If you don’t want the button to be injected automatically, disable the related setting
and either use the shortcode [eu_owb_order_withdrawal_button] to output the button
or manually create a link to your withdrawal page within your theme or pagebuilder.

#### Integrated with Shiptastic for WooCommerce

Use our plugin [Shiptastic for WooCommerce](https://wordpress.org/plugins/shiptastic-for-woocommerce/)
to handle returns with ease. After confirming a withdrawal request, Shiptastic automatically
adds a return shipment including all items of the original request. Provide your
customer with all the information needed to return the goods to you. Use Shiptastic
to exclude certain products from being returnable at all.

## Screenshots

[⌊Withdrawal form⌉⌊Withdrawal form⌉[

Withdrawal form

[⌊Manage order⌉⌊Manage order⌉[

Manage order

[⌊Manage withdrawals⌉⌊Manage withdrawals⌉[

Manage withdrawals

## Installation

#### Minimal Requirements

 * WordPress 4.9 or newer
 * WooCommerce 3.9 (newest version recommended)
 * PHP Version 7.0 or newer

#### Automatic Installation

We recommend installing EU Order Withdrawal Button for WooCommerce through the WordPress
backend. Please install WooCommerce before installing the plugin.

Follow the [initial setup steps](https://wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/)
to configure the plugin.

## FAQ

### How to render the withdrawal form?

Place the shortcode [eu_owb_order_withdrawal_request_form] anywhere on a page to
render the form.

### How to embed the button within my shop?

Use the option to embed the button directly within your footer or your theme’s options,
e.g. a footer menu, to link the withdrawal page.
 You may furthermore use the shortcode[
eu_owb_order_withdrawal_button] to place the button wherever you want.

### The embedded button does not show

Make sure that you’ve published your withdrawal page (which by default is created
as a draft during installation). The embedded button does only show on shop-related
pages.

### Need help?

You may ask your questions within our free [WordPress support forum](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce).

### Want to file a bug or improve the plugin?

Bug reports may be filed via our [GitHub repository](https://github.com/vendidero/eu-order-withdrawal-button-for-woocommerce).

### Where do I report security bugs found in this plugin?

Please report security bugs found in the source code of the EU Order Withdrawal 
Button for WooCommerce plugin through the [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/155b9a37-427c-4050-aaeb-0bd9ca1f74ab).
The Patchstack team will assist you with verification, CVE assignment, and notify
the developers of this plugin.

## Reviews

![](https://secure.gravatar.com/avatar/c4d3571865cfac1b8c9ba8455b2c92a60bfd13aac70f861aa45ccb3398caa3b6?
s=60&d=retro&r=g)

### 󠀁[Almost unusable – None of the entered values is checked against any order inform](https://wordpress.org/support/topic/almost-unusable-none-of-the-entered-values-is-checked-against-any-order-inform/)󠁿

 [imagophilos](https://profiles.wordpress.org/imagophilos/) August 22, 2026 2 replies

This is my second review. First one just got deleted / moderated, which is a tell
in itself. Again: one can enter any data into the form and thus can trigger a 1000
emails to any valid email. Use this plugin as is and your shop domain risks to get
a bad spammer reputation very, very fast. It does not check against anything in 
a real order: not the Order No., not the name, not even the email address. Anyone
or any bot can pick an email to spam and hammer away at it, generating a withdrawal
request every single time and a confirmation email with that.In clear terms: Every
unauthenticated form submission sends a confirmation email to an arbitrary recipient
with no order validation and no rate limiting. It can be partially mitigated by 
a special Cloudflare rule, but why should I have to do that?It can be mitigated 
by shutting off the automated email. But what is the point in that? The explanation“
It’s not us, it’s the EU” does not hold, because you should not stop a customer 
from filing for a return, but you should stop those emails getting sent without 
ANY check against the veridity of the request. I can put in your email address and
send 100 Withdrawal requests right now. And you would get 100 Confirmation emails.
And my server reputation would be in the gutter. This has to be handled in another
way.

![](https://secure.gravatar.com/avatar/33fadaf8aef05d4f5ce5153c47ec1ecc45fa47b6bb54f6c06825ee4abfe32321?
s=60&d=retro&r=g)

### 󠀁[It couldn’t be simpler](https://wordpress.org/support/topic/it-couldnt-be-simpler/)󠁿

 [Vassos Hadjivassiliou](https://profiles.wordpress.org/more2think/) July 30, 2026

This plugin is so simple to use. Very userfriendly. I does what it says. The only
thing I noticed missing is a Mandatory consent for digital content (Art. 16(m)) 
that blocks the place-order step until accepted. However I am not sure if this is
required by Law. So 5 stars guys.

![](https://secure.gravatar.com/avatar/1083d402b1086bd5a378ca35a0d2d3576fd8e12c70e8cd01b6e8dbe6b506773b?
s=60&d=retro&r=g)

### 󠀁[Great plugin and support](https://wordpress.org/support/topic/great-plugin-and-support-1941/)󠁿

 [Marco Almeida | Webdados](https://profiles.wordpress.org/webdados/) July 8, 2026
1 reply

It just works and the support is very responsive and accepts suggestions.

![](https://secure.gravatar.com/avatar/82fcc1b0d90d7cfc87bcd9756375e0fd86e4a2a8c5a6f9b72a02ae1ffc44b7f0?
s=60&d=retro&r=g)

### 󠀁[German quality](https://wordpress.org/support/topic/german-quality/)󠁿

 [masvil](https://profiles.wordpress.org/masvil/) June 25, 2026 1 reply

Best plugin to add compliance with the EU directive 2023/2673 from the same author
of other well established tools. German quality! If you need it in a language different
from English, German, Dutch, check the translation progress on translate.wordpress.
org/projects/wp-plugins/eu-order-withdrawal-button-for-woocommerce/

![](https://secure.gravatar.com/avatar/364a0820ea986656e754d45c0054a3372bdb6f732942a0a4d5fbe12cdaa3a5c7?
s=60&d=retro&r=g)

### 󠀁[Great plugin](https://wordpress.org/support/topic/great-plugin-41582/)󠁿

 [arturix](https://profiles.wordpress.org/marqozzzzz/) June 19, 2026

Great plugin

![](https://secure.gravatar.com/avatar/c34f62b0adf2aace907e9daf8fc12e6c7cc1a046ad89b70e442621f808764b33?
s=60&d=retro&r=g)

### 󠀁[Excellent plugin](https://wordpress.org/support/topic/excellent-plugin-9895/)󠁿

 [jeanpiet](https://profiles.wordpress.org/jeanpiet/) June 12, 2026

Just what we needed – thank you!

 [ Read all 6 reviews ](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/)

## Contributors & Developers

“EU Order Withdrawal Button for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ vendidero ](https://profiles.wordpress.org/vendidero/)
 *   [ Dennis ](https://profiles.wordpress.org/vdwoocommercesupport/)

“EU Order Withdrawal Button for WooCommerce” has been translated into 8 locales.
Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/eu-order-withdrawal-button-for-woocommerce/contributors)
for their contributions.

[Translate “EU Order Withdrawal Button for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/eu-order-withdrawal-button-for-woocommerce)

### Interested in development?

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

## Changelog

#### 2.4.1

 * Improvement: Prefer searching for custom order number first to prevent finding
   wrong ids
 * Improvement: Restock order items on withdrawal confirmation in case no payment
   has been made yet

#### 2.4.0

 * Improvement: Edit withdrawal flow
 * Improvement: Bulk spam protection
 * Security: Remove the partial withdrawal availability check to prevent information
   leakage (e.g. to check whether a specific email + order exists)
 * Fix: Fix a template typo show_imag vs. show_image

#### 2.3.2

 * New: Introduce setting to place a withdrawal link (in case available) within 
   customer account order actions
 * Improvement: Override additional abstract order method to prevent compatibility
   issues
 * Improvement: Add a generic error message in case no valid XHR response is received
 * Improvement: Show withdrawn/requested labels for order items within view order
   endpoint
 * Improvement: Introduce eu_order_woocommerce_withdrawal_email_show_verification_code
   filter which allows to hide the verification code from emails

#### 2.3.1

 * New: Withdrawal preview modal
 * Improvement: Link withdrawal items with refunds to prevent reducing withdrawable
   quantity twice
 * Fix: Edge-case where edit withdrawal guest links where missing the current order

#### 2.3.0

 * New: WPML compatibility
 * New: Privacy additions (export, erase, policy suggestions)
 * New: Setting to select which fields to be mandatory
 * New: Setting to add an “additional information” textarea
 * New: Added sha256 verification code which reflects the data contained within 
   the withdrawal request
 * Improvement: Allow setting days to withdraw to 0 to keep order withdrawable indefinitely
 * Improvement: Renamed order number field to “Contract identification” and make
   it mandatory by default
 * Improvement: Explicitly exclude checkout-draft status
 * Improvement: Add order notes to withdrawals, e.g. on status updates
 * Fix: Woo < 10.X backwards compatibility

#### 2.2.1

 * Improvement: Show withdrawal page valid/invalid status in settings
 * Improvement: Use a more consistent HTML markup for checkboxes
 * Improvement: Do not pass (parent) order object in case existent to emails for
   consistency

#### 2.2.0

 * Improvement: Use additional content within withdrawal confirmation email to allow
   for a more customized message
 * Improvement: Backwards compatibility with Woo < 8.7
 * Improvement: Use woocommerce_form_field to output form fields within withdrawal
   form
 * Improvement: Prevent rejected unverified withdrawal requests from reducing the
   quantity available to withdraw
 * Improvement: Introduce sane first name, order number and last name maxlength
 * Improvement: Check whether a new withdrawal request actually has any updates
 * Fix: Allow (guest) withdrawal requests to be overridden (in case verified) – 
   thanks to Ilyess Ghalem from fraudless.tech
 * Fix: Plaintext email template usage

#### 2.1.1

 * Improvement: Basic spam protection via honeypot field + direct post check
 * Improvement: Prevent guests from submitting
 * Fix: Performance improvement for legacy withdrawal imports by using direct queries

#### 2.1.0

 * New: Accept withdrawal requests without matching order
 * New: Withdrawal admin UI
 * New: Store withdrawals as custom order type
 * New: Allow choosing a different support email via setting

#### 2.0.2

 * Improvement: List all orders for logged-in users and show non-withdrawable notices
   on request

#### 2.0.1

 * Fix: Prevent calling customer in admin context

#### 2.0.0

 * Improvement: Allow withdrawal requests without order number and differing email
   address
 * Improvement: Mark withdrawal requests as verified/unverified based on email address
 * Improvement: Separately list unverified withdrawal requests by default
 * Improvement: Allow verified guests to choose another order in case multiple orders
   are withdrawable
 * Improvement: Allow choosing first + last name

#### 1.0.2

 * Improvement: Inform guest customers about partial withdrawals within original
   form
 * Fix: HPOS order number search

#### 1.0.1

 * Fix: Partial withdrawal request check
 * Improvement: Fallback to customer_id in case billing_email differs

#### 1.0.0

 * Initial commit

## Meta

 *  Version **2.4.1**
 *  Last updated **1 day ago**
 *  Active installations **5,000+**
 *  WordPress version ** 5.4 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Danish](https://da.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [Dutch](https://nl.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [English (US)](https://wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [Finnish](https://fi.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [German](https://de.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [German (Austria)](https://de-at.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [German (Switzerland)](https://de-ch.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   [Portuguese (Portugal)](https://pt.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/),
   and [Slovenian](https://sl.wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/eu-order-withdrawal-button-for-woocommerce)
 * Tags
 * [cancellation](https://wordpress.org/plugins/tags/cancellation/)[compliance](https://wordpress.org/plugins/tags/compliance/)
   [eu](https://wordpress.org/plugins/tags/eu/)[withdrawal](https://wordpress.org/plugins/tags/withdrawal/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/eu-order-withdrawal-button-for-woocommerce/advanced/)

## Ratings

 4.6 out of 5 stars.

 *  [  6 5-star reviews     ](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/?filter=1)

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

[See all reviews](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/reviews/)

## Contributors

 *   [ vendidero ](https://profiles.wordpress.org/vendidero/)
 *   [ Dennis ](https://profiles.wordpress.org/vdwoocommercesupport/)

## Support

Issues resolved in last two months:

     14 out of 14

 [View support forum](https://wordpress.org/support/plugin/eu-order-withdrawal-button-for-woocommerce/)