{"id":277507,"date":"2026-02-04T06:02:25","date_gmt":"2026-02-04T06:02:25","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/revoker-for-woocommerce\/"},"modified":"2026-02-17T05:58:52","modified_gmt":"2026-02-17T05:58:52","slug":"revoker-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/revoker-for-woocommerce\/","author":23440811,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.4","stable_tag":"1.0.4","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Revoker for WooCommerce","header_author":"KOMMERS GmbH","header_description":"EU-compliant withdrawal button for WooCommerce according to EU Directive (EU) 2023\/2673 and \u00a7 356a BGB. Two-step withdrawal process with automatic email confirmation.","assets_banners_color":"1341e8","last_updated":"2026-02-17 05:58:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/kommers.io\/","header_author_uri":"https:\/\/kommers.io","rating":0,"author_block_rating":0,"active_installs":20,"downloads":268,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"kommers","date":"2026-02-16 08:54:27"},"1.0.4":{"tag":"1.0.4","author":"kommers","date":"2026-02-17 05:58:52"}},"upgrade_notice":{"1.0.0":"<p>Initial stable release of Revoker for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3453497,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3453497,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3453497,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3453497,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"revoker\/withdrawal-policy":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"revoker\/withdrawal-policy","version":"1.0.0","title":"Withdrawal policy","category":"widgets","description":"Displays the legal withdrawal policy for your online shop.","keywords":["withdrawal","policy","eu","legal","revoker"],"textdomain":"revoker-for-woocommerce","attributes":{"showTitle":{"type":"boolean","default":true},"showDeadline":{"type":"boolean","default":true},"showAddress":{"type":"boolean","default":true},"style":{"type":"string","default":"default"}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"typography":{"fontSize":true}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/editor.css","style":"file:.\/style.css","render":"file:.\/render.php"}},"tagged_versions":["1.0.3","1.0.4"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[255182,395,255181,245590,286],"plugin_category":[45],"plugin_contributors":[255183],"plugin_business_model":[],"class_list":["post-277507","plugin","type-plugin","status-publish","hentry","plugin_tags-consumer-rights","plugin_tags-eu","plugin_tags-revocation","plugin_tags-withdrawal","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-kommers","plugin_committers-kommers"],"banners":{"banner":"https:\/\/ps.w.org\/revoker-for-woocommerce\/assets\/banner-772x250.png?rev=3453497","banner_2x":"https:\/\/ps.w.org\/revoker-for-woocommerce\/assets\/banner-1544x500.png?rev=3453497","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/revoker-for-woocommerce\/assets\/icon-128x128.png?rev=3453497","icon_2x":"https:\/\/ps.w.org\/revoker-for-woocommerce\/assets\/icon-256x256.png?rev=3453497","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Revoker for WooCommerce<\/strong> adds a legally compliant withdrawal button to your WooCommerce store. Customers can revoke orders directly from their account area \u2013 fully compliant with EU Directive 2023\/2673 and applicable consumer protection laws.<\/p>\n\n<h4>Why Revoker?<\/h4>\n\n<p>Starting in 2026, online merchants in the EU are required to provide consumers with an easy way to exercise their right of withdrawal. Revoker implements this requirement elegantly and user-friendly.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Withdrawal Button<\/strong> \u2013 Automatically appears on the order details page in customer accounts<\/li>\n<li><strong>Two-Step Process<\/strong> \u2013 Button \u2192 Confirmation page prevents accidental withdrawals<\/li>\n<li><strong>Deadline Calculation<\/strong> \u2013 Automatic calculation of remaining withdrawal period<\/li>\n<li><strong>Partial Withdrawal<\/strong> \u2013 Customers can withdraw individual items from an order<\/li>\n<li><strong>Guest Support<\/strong> \u2013 Withdrawal without customer account via order number + email<\/li>\n<li><strong>Email Notifications<\/strong> \u2013 Automatic confirmation to customer and shop admin<\/li>\n<li><strong>Withdrawal Log<\/strong> \u2013 Complete overview of all withdrawals in the backend<\/li>\n<li><strong>Product Exceptions<\/strong> \u2013 Exclude categories, individual products, or digital downloads<\/li>\n<li><strong>Customizable<\/strong> \u2013 Button text, style, and withdrawal period individually configurable<\/li>\n<li><strong>PDF Confirmation<\/strong> \u2013 Generate PDF documents for withdrawal confirmations<\/li>\n<li><strong>Gutenberg Block<\/strong> \u2013 Add withdrawal policy information easily to any page<\/li>\n<\/ul>\n\n<h4>Legal Compliance<\/h4>\n\n<ul>\n<li>EU Directive 2023\/2673<\/li>\n<li>Consumer Rights Directive 2011\/83\/EU<\/li>\n<li>GDPR compliant<\/li>\n<\/ul>\n\n<h4>Pro Version<\/h4>\n\n<p>Need advanced features? <a href=\"https:\/\/kommers.io\/plugins\/revoker\">Revoker Pro<\/a> offers:<\/p>\n\n<ul>\n<li><strong>Dashboard &amp; Statistics<\/strong> \u2013 Withdrawal rates, trends, top products<\/li>\n<li><strong>Automatic Refunds<\/strong> \u2013 Integration with WooCommerce Refunds<\/li>\n<li><strong>Notifications<\/strong> \u2013 Slack, Microsoft Teams, Custom Webhooks<\/li>\n<li><strong>REST API<\/strong> \u2013 Complete API for external integrations<\/li>\n<li><strong>Rules Engine<\/strong> \u2013 Advanced exception rules (geo, price, time, etc.)<\/li>\n<li><strong>UI Builder<\/strong> \u2013 Visual editor for button and modal<\/li>\n<li><strong>Return Labels<\/strong> \u2013 Integration with DHL, DPD, GLS<\/li>\n<li><strong>Accounting Export<\/strong> \u2013 DATEV, lexoffice, sevDesk export<\/li>\n<li><strong>Fraud Detection<\/strong> \u2013 Protect against abuse<\/li>\n<li><strong>Multilingual<\/strong> \u2013 6 languages including legally compliant translations<\/li>\n<li><strong>Legal Updates<\/strong> \u2013 Automatic updates for regulatory changes<\/li>\n<\/ul>\n\n<h3>Additional Info<\/h3>\n\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>WooCommerce 7.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin:\n* Stores withdrawal data locally in your WordPress database\n* Does not send data to external servers\n* Is fully GDPR compliant<\/p>\n\n<p>The Pro version communicates with kommers.io for license validation and updates.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin<\/li>\n<li>Search for \"Revoker for WooCommerce\"<\/li>\n<li>Click <strong>Install Now<\/strong> and then <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin as a ZIP file<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Select the ZIP file and click <strong>Install Now<\/strong><\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>After Installation<\/h4>\n\n<ol>\n<li>Go to <strong>WooCommerce \u2192 Withdrawal Button<\/strong><\/li>\n<li>Configure the withdrawal period (default: 14 days)<\/li>\n<li>Customize button text and style as desired<\/li>\n<li>Optional: Exclude specific categories or products<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20the%20plugin%20gdpr%20compliant%3F\"><h3>Is the plugin GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. The plugin only stores data necessary for the withdrawal process and respects all data protection requirements. Withdrawal data is stored together with the order.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20my%20theme%3F\"><h3>Does the plugin work with my theme?<\/h3><\/dt>\n<dd><p>Revoker is designed to work with all WooCommerce-compatible themes. The button automatically adapts to your theme's styling.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20withdrawal%20period%3F\"><h3>Can I customize the withdrawal period?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>WooCommerce \u2192 Withdrawal Button \u2192 Settings<\/strong> you can set the period between 7 and 365 days. The EU standard is 14 days.<\/p><\/dd>\n<dt id=\"can%20guests%20also%20withdraw%3F\"><h3>Can guests also withdraw?<\/h3><\/dt>\n<dd><p>Yes. Using the shortcode <code>[revoker_withdrawal_search]<\/code> guests can find their order by order number and email address and submit a withdrawal.<\/p><\/dd>\n<dt id=\"which%20products%20can%20i%20exclude%20from%20withdrawal%3F\"><h3>Which products can I exclude from withdrawal?<\/h3><\/dt>\n<dd><p>You can exclude:\n* Complete categories\n* Individual products\n* All digital\/downloadable products<\/p><\/dd>\n<dt id=\"are%20emails%20sent%20automatically%3F\"><h3>Are emails sent automatically?<\/h3><\/dt>\n<dd><p>Yes. For each withdrawal, a confirmation is automatically sent to the customer. Optionally, the shop admin can also be notified.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20hpos%3F\"><h3>Is the plugin compatible with HPOS?<\/h3><\/dt>\n<dd><p>Yes. Revoker fully supports WooCommerce's High-Performance Order Storage (HPOS) feature.<\/p><\/dd>\n<dt id=\"in%20which%20languages%20is%20the%20plugin%20available%3F\"><h3>In which languages is the plugin available?<\/h3><\/dt>\n<dd><p>The plugin is developed with full internationalization support and includes translations for:\n* German (de_DE)\n* English (en_US)\n* French (fr_FR)\n* Italian (it_IT)\n* Spanish (es_ES)\n* Dutch (nl_NL)<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20withdrawal%20policy%20to%20a%20page%3F\"><h3>How do I add the withdrawal policy to a page?<\/h3><\/dt>\n<dd><p>You can use the Gutenberg block \"Withdrawal Policy\" or the shortcode <code>[revoker_withdrawal_policy]<\/code> to display the legally required withdrawal information on any page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Changed: Source language switched from German to English for WordPress.org GlotPress compatibility<\/li>\n<li>Added: German (de_DE) translation file with 100% coverage<\/li>\n<li>Updated: French (fr_FR), Spanish (es_ES), Italian (it_IT), Dutch (nl_NL) translations to 100% coverage<\/li>\n<li>Improved: All translatable strings now use English as source language (msgid)<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed: Database insert failure when saving withdrawals (NULL datetime handling)<\/li>\n<li>Fixed: Modal on order confirmation page now shows item checkboxes for selection<\/li>\n<li>Fixed: Modal withdrawal submission now correctly sends selected items<\/li>\n<li>Added: Dedicated return address settings (company name, address, postcode, city)<\/li>\n<li>Improved: Return address in forms, emails, and withdrawal policy uses custom settings with WooCommerce fallback<\/li>\n<li>Improved: Error logging for failed database operations when WP_DEBUG is enabled<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed: Escape all $withdrawal_period variables with absint()<\/li>\n<li>Fixed: Escape all $days_remaining variables with absint()<\/li>\n<li>Fixed: Escape $deadline and $withdrawal_url in plain text emails<\/li>\n<li>Fixed: Move PDF styles to external CSS file to avoid inline  tag<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: Proper escaping of date_i18n() outputs<\/li>\n<li>Fixed: Use wp_enqueue functions for scripts and styles<\/li>\n<li>Fixed: Plugin URI now points to valid URL<\/li>\n<li>Added: Requires Plugins header for WooCommerce dependency<\/li>\n<li>Removed: WordPress.org directory assets from plugin package<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial stable release<\/li>\n<li>Withdrawal button on order details page<\/li>\n<li>Two-step withdrawal process<\/li>\n<li>Partial withdrawal of individual items<\/li>\n<li>Guest support via order search<\/li>\n<li>Email notifications (customer &amp; admin)<\/li>\n<li>Withdrawal log in backend<\/li>\n<li>Product and category exceptions<\/li>\n<li>Exclude digital downloads<\/li>\n<li>Customizable button style (standard, outline, text link)<\/li>\n<li>Configurable withdrawal period (7-365 days)<\/li>\n<li>PDF generation for withdrawal confirmations<\/li>\n<li>Gutenberg block for withdrawal policy<\/li>\n<li>Withdrawal reason selection<\/li>\n<li>HPOS compatibility<\/li>\n<li>Translations for 6 languages<\/li>\n<\/ul>","raw_excerpt":"EU-compliant withdrawal button for WooCommerce \u2013 enables customers to easily revoke orders in accordance with EU Directive 2023\/2673.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/277507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=277507"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kommers"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=277507"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=277507"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=277507"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=277507"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=277507"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=277507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}