Description
Since 19 June 2026, Dutch and EU B2C webshops must offer a clear, easily accessible digital withdrawal function (in Dutch: “herroepingsknop”): withdrawing from a purchase should be as easy as placing the order. This plugin helps your WooCommerce store offer and record such a function.
The plugin works right after activation, with no configuration required:
- Automatically creates a public page named “Herroeping” containing the withdrawal form (shortcode
[herroepingsknop]). If the page is lost, the plugin restores it. - Two-step process: first the withdrawal declaration, then an explicit confirmation. No account is required.
- Shows the withdrawal button in the order flow: on the order-received (thank-you) page, on the order detail page and under My Account Orders.
- Verifies the submitted email address against the order, so no one can submit a withdrawal for someone else’s order.
- Records every request on the order (a dedicated “Herroeping aangevraagd” order status, an order note and order meta) and sends a confirmation to the customer plus an internal notification. Both emails can be managed under WooCommerce Settings Emails.
- Privacy- and security-conscious: nonces, a honeypot, a rate limit and generic error messages so order numbers cannot be enumerated.
This plugin records and confirms requests. It does not determine whether a request is timely, valid or legally enforceable, and it does not guarantee compliance with any law. As a store owner you remain responsible for the legal assessment, your return and withdrawal policy, information duties, retention periods and the handling of requests. This plugin is not legal advice.
The plugin does not send data to external servers and adds no tracking.
Standalone
This plugin is complete and works fully on its own. No account, subscription or companion plugin is required. A commercial extension is available separately at https://herroeping.nl/.
Installation
- Upload the
herroepingsknopfolder to/wp-content/plugins/, or upload the ZIP via Plugins Add New Upload Plugin. - Activate the plugin through the Plugins menu. The “Herroeping” page is created automatically.
- Add a link to that page in your footer (and optionally the header), visible on every page, and refer to it in your terms and return policy.
- Optional: set the internal notification email under WooCommerce Settings Herroeping.
- Under WooCommerce Settings Emails, make sure “Herroeping bevestigd (klant)” and “Herroeping ontvangen (intern)” are enabled.
FAQ
-
Does this replace my existing withdrawal form?
-
No. The button is an addition. Your existing model form may remain; customers may still withdraw through other channels.
-
Does the plugin decide whether a customer may withdraw?
-
No. The plugin records and confirms the request; you review it and handle the next steps.
-
Does the plugin work with High-Performance Order Storage (HPOS)?
-
Yes. The plugin declares HPOS compatibility and uses the WooCommerce CRUD API.
-
My order numbers differ from the order ID.
-
If you use a sequential order number plugin, connect it through the
herroepingsknop_resolve_order_idfilter so a submitted order number resolves to the correct order ID. -
The customer does not receive an email.
-
Many hosts do not send
wp_mail()reliably. Install an SMTP plugin and connect a real mailbox or transactional service, and check that the emails are enabled under WooCommerce Settings Emails. -
What withdrawal period and exclusions does the plugin use?
-
Safe statutory defaults: a 14-day period (the legal minimum), no product exclusions, and every request recorded so you can review it manually. These defaults keep the plugin complete and usable on its own. Developers can adjust the behaviour with standard WordPress filters.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Herroeping – Herroepingsknop for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Herroeping – Herroepingsknop for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.9
- Text domain set to herroepingsknop to match the plugin slug, so the directory can serve translations.
1.0.8
- Text domain aligned with the plugin slug so the directory can serve translations.
- Readme wording clarified: the plugin is described as complete and standalone, without a feature-by-feature promotion of the separate commercial extension.
1.0.7
- Admin order-status styling is now enqueued via wp_enqueue_style instead of an inline style block.
- Filtered output (item list and the optional powered-by line) is escaped with wp_kses_post.
- Clarified settings and readme wording.
1.0.6
- Customer email texts are now filterable, so translations and wording can be adjusted.
1.0.5
- Text domain aligned with the plugin slug for the WordPress.org directory.
1.0.4
- Clean Plugin Check: template-variable scoping and tidy uninstall routine.
1.0.3
- Coding-standard polish (prefixed template variables) for a clean Plugin Check.
1.0.2
- Readme in English and minor coding-standard fixes for the plugin directory.
1.0.1
- Help texts below the order number and email fields.
1.0.0
- Initial public release.