WP Manifestindependent plugin directory
manifest / ecommerce / eu-revocation-button-for-woocommerce

EU Revocation Button for WooCommerce

Free § 356a BGB contract-revocation button (EU-Widerrufsbutton) for WooCommerce — theme-independent, HPOS-compatible, full & partial revocation.

★ 0stars
1release downloads
v1.2.1latest · 3mo ago

Install

Download eu-revocation-button-for-woocommerce.zip From the v1.2.1 release on GitHub, Jul 14, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/moghancy/eu-revocation-button-for-woocommerce/releases/download/v1.2.1/eu-revocation-button-for-woocommerce.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A free, theme-independent contract-revocation button (§ 356a BGB „Widerrufsbutton") for WooCommerce. From 19 June 2026 German online shops are legally required to offer a one-click way for consumers to revoke a purchase contract — this plugin provides it.

Distributed free on the WordPress.org plugin directory and the WooCommerce Marketplace. Built and maintained by Moghancy.

Features

  • Revocation form on any page via the [mocy_revocation_form] shortcode, plus a [mocy_revocation_button] trigger and a Gutenberg block.
  • Two-step flow (submit → confirm) with full or partial, per-item revocation.
  • Order matching by the internal order ID or the customer-facing order number (works with sequential/prefixed numbers such as 2026-1).
  • Configurable deadline: set the period in days, choose the WooCommerce order status it starts from, or set 0 to disable the time limit entirely. A revocation stays possible before the period begins (§ 355 BGB); only an elapsed period closes it.
  • Native WooCommerce emails (confirmation-of-receipt to customer and shop, stating date and time per § 356a Abs. 4 BGB) — no custom mail wrapper, theme-independent.
  • Editable customer-facing texts and error messages from a WooCommerce settings tab.
  • HPOS (High-Performance Order Storage) compatible.
  • i18n: English source with German (de_DE), French (fr_FR) and Spanish (es_ES).
  • Data sovereignty: uninstall removes only the plugin's own settings — revocations recorded on orders are preserved.

Installation

From WordPress.org (once published): search for „EU Revocation Button" under Plugins → Add New, install and activate.

Manual / update: download mocy-revocation.zip, go to Plugins → Add New → Upload Plugin, and choose the file. When updating an existing install, use „Replace current with uploaded" — your settings and order data are kept.

Requirements: WordPress ≥ 6.2, PHP ≥ 7.4, WooCommerce ≥ 8.2.

After activating, place the [mocy_revocation_form] shortcode on a page and configure the period and texts under WooCommerce → Settings → EU Widerrufsbutton.

Development

composer install         # PHP dependencies (dev)
npm install              # frontend dependencies

npm run build            # tsc + vite → build/ (required; not committed)
npm run watch            # rebuild on change

composer lint            # phpcs (WordPress + WooCommerce sniffs)
composer test            # phpunit (Domain logic)
npm run test             # vitest (frontend)

Verify loop before committing: composer lint · composer test · npm run test · PHP 7.4 compatibility (phpcs --standard=PHPCompatibilityWP --runtime-set testVersion 7.4-).

Architecture: PSR-4 Mocy\Revocation\ → src/; pure domain logic (deadline, matcher, rate limiter, token, validator) under src/Domain/; React/TypeScript frontend in resources/ts/ built to build/. See CLAUDE.md for the full guide.

Building the distributable

The shipped ZIP contains the compiled build/ and excludes dev files via .distignore. Validate it with the WooCommerce QIT CLI and the official Plugin Check:

wp dist-archive . dist/mocy-revocation.zip
vendor/bin/qit woo:validate-zip dist/mocy-revocation.zip
wp plugin check <extracted-dist>          # target: 0 errors / 0 warnings

License & trademark

Copyright © 2026 Amir Moghancy Moghaddam.

The code is free software under GPL-2.0-or-later (see LICENSE): anyone may use, study, modify and redistribute it at no cost. As required by the GPL, the copyright and author notices must be kept intact — you may not strip the authorship and present the code as your own work.

The name “EU Revocation Button”, the “Moghancy” brand, and the associated logos are not covered by the GPL and remain the property of the author. You may not sell or distribute this plugin — modified or not — as your own or a rebranded product, nor use the name or brand in a way that suggests endorsement. In short: the code is free; passing it off as your own software is not permitted.

This is the same model WordPress and WooCommerce themselves use: GPL code, protected name.

Releases

1 release. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.2.1 latest
Jul 14, 2026 3mo ago
eu-revocation-button-for-woocommerce.zip
1