WordPress plugin intelligence profile

EU Withdrawal Button for WooCommerce – Octoplug

The EU-required withdrawal button for WooCommerce: two-step flow, timestamped receipt, guest-friendly, request queue. Directive (EU) 2023/2673.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.0
Current version1.3.3
WordPress coverageTested up to WordPress 7.0
Minimum stackWP 6.5 · PHP 8.0
Directory statusactive
Last directory update16 Aug 20262mo ago
Active installations10Adoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records EU Withdrawal Button for WooCommerce – Octoplug version 1.3.3 as active, updated 2mo ago and tested up to WordPress 7.0.

Overview

About this plugin

Directive (EU) 2023/2673 requires online stores selling to EU consumers to offer a clearly visible withdrawal function — a “withdrawal button” — so customers can withdraw from a contract as easily as they entered it. Octoplug adds that function to WooCommerce, end to end.

Also known across the EU as: pulsante di recesso / recesso digitale (art. 54-bis Codice del Consumo) in Italy, Widerrufsbutton / Widerrufsfunktion in Germany and Austria, bouton de rétractation in France, botón de desistimiento in Spain, przycisk odstąpienia od umowy in Poland. Whatever your market calls it, this plugin implements it.

What it does

  • Adds a “Withdraw from contract here” button (or link) to the customer’s account area: on the order page and, optionally, as an action in the order list.
  • Optional footer link on every page and a dedicated withdrawal page you can place anywhere with the octoplug/withdrawal block or the [opwb_withdrawal] shortcode — the page is created for you.
  • Two-step flow: the customer reviews the order, can select specific items and add an optional note (no reason required), then confirms. Works without JavaScript.
  • Durable receipt: after confirming, the customer receives a confirmation email with the exact date and time of the withdrawal (site timezone plus UTC) and a SHA-256 integrity fingerprint — the proof the Directive requires. Delivery failures are logged and surfaced, never silent.
  • Guest-friendly: customers without an account can find their order with the order number and billing email. The lookup is POST-only, rate-limited, honeypot-protected and always answers generically — no personal data leaks.
  • Request queue under WooCommerce: statuses (New, In progress, Completed, Rejected, Cancelled by customer), filters, bulk actions, request detail with timeline, CSV export (injection-safe). A rejection always requires a note, which is sent to the customer.
  • Lifecycle emails to the customer (completed, rejected, cancelled) and notifications to the store, in the language of the order (WPML and Polylang aware).
  • Withdrawal window handling: 14 days minimum (configurable upwards), anchored to delivery/completion or order date, end-of-day deadlines, grace buffer. You decide what happens afterwards, with three modes:
  • Refuse late requests (the default): past the deadline nothing can be submitted online. The customer is not left in front of a page that lost its button — a notice states when the period ended and invites them to write to your contact address.
  • Hide the button but accept late requests: the button disappears, as you asked, and the notice says when the period ended — followed by a discreet link for the customer who wants to send the request anyway. It is registered with its date and flagged “out of window” for your review, which is exactly what the setting promises.
  • Keep it visible and accept late requests: the button stays, above a banner saying the deadline appears to have passed and that the store will review the request.

In no mode does the plugin tell a customer that the right of withdrawal is gone: when the consumer was not informed of that right the period extends to twelve months, and only you can judge the case. Requests accepted after the deadline are registered inside a configurable cut-off and flagged “out of window” for your review.

  • Late attempts counter on the dashboard: how many orders reached the withdrawal function after the deadline in the last 30 days, counted once a day each. They are not requests and nothing lands in your queue — it is an early warning that deliveries or your pre-contractual information may need a look. The counter is a plain daily total: it stores no order number, no name and no IP address.
  • Optional WooCommerce order statuses “Withdrawal requested” / “Withdrawal completed” with automatic revert.
  • Simple exclusions: flag single products, whole categories or product types (virtual/downloadable) as exempt; flagged requests are marked for your review — never auto-rejected. Optional exemption note on the product page.
  • Legal wording packs in English, Italian, German, French, Spanish and Polish: button label, confirmation texts, receipt template, suggested Terms & Conditions snippet — all editable.
  • Setup wizard (5 minutes) and a compliance checklist that shows exactly what still needs attention.
  • GDPR tools: integration with the WordPress personal data exporter/eraser (requests are anonymized, not destroyed — they are legal evidence) and an optional retention policy.

What it does NOT do

  • It does not rewrite your Terms & Conditions (it suggests a snippet you can copy).
  • It does not process refunds automatically — you stay in control in WooCommerce.
  • It is a compliance tool, not legal advice. For specific legal questions, consult a qualified professional.

Privacy & transparency

  • No external calls, no tracking, no accounts: everything runs on your site and your data never leaves it.
  • Data stored per request: customer name and billing email, optional note, IP address (full, truncated or omitted — your choice), timestamps (GMT), order reference, receipt fingerprint. Stored in a dedicated table on your database.
  • Uninstall is conservative by default: your withdrawal records are kept unless you explicitly enable “Delete all data on uninstall”.

Multisite: network activation installs on existing sites; sites created afterwards need the plugin activated individually (planned for a future release). Uninstall cleans the current site only.

Translations

  • The customer-facing legal wording (button label, confirmation page, receipt email, T&C snippet) ships in English, Italian, German, French, Spanish and Polish and always follows the language of the order — independent of the interface translation.
  • The plugin interface is fully internationalized and translated through translate.wordpress.org, so WordPress installs and updates the language packs on its own. Italian, German, French and Spanish are contributed there by the author; any other language is open to the community.
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • consumer rights
  • right of withdrawal
  • eu
  • woocommerce
Compatibility & maintenance

Compatibility & maintenance

Tested up to WordPress 7.0

Not yet marked as tested with WordPress 7.1. WordPress.org currently lists Tested up to 7.0.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.0
Minimum requirementsWordPress 6.5 · PHP 8.0
Update activity16 Aug 20262mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.