{"id":326715,"date":"2026-06-26T09:14:18","date_gmt":"2026-06-26T09:14:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/right-of-withdrawal-eu-directive\/"},"modified":"2026-06-26T09:13:57","modified_gmt":"2026-06-26T09:13:57","slug":"edit-eu-withdrawal-requests","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/edit-eu-withdrawal-requests\/","author":14551363,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.19","stable_tag":"2.0.19","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Edit EU Withdrawal Requests for WooCommerce","header_author":"edit","header_description":"Digital right-of-withdrawal for WooCommerce under the EU directive. Lets customers withdraw online (My Account and guest form), calculates deadlines automatically, and manages cases with email notifications.","assets_banners_color":"","last_updated":"2026-06-26 09:13:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ed1.se\/plugins\/wp\/arw\/","header_author_uri":"https:\/\/ed1.se\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.19":{"tag":"2.0.19","author":"ChristerE65","date":"2026-06-26 09:13:57"}},"upgrade_notice":{"2.0.19":"<p>Trialware compliance: partial withdrawal is Pro-only. Legacy option migration uses a whitelist.<\/p>","2.0.18":"<p>Prefix renamed to eeuwr; existing arw_* settings and cases migrate automatically.<\/p>","2.0.17":"<p>Tested up to WordPress 7.0.<\/p>","2.0.16":"<p>Partial withdrawal upsell in free settings; customer notice when withdrawing multi-item orders as whole order.<\/p>","2.0.15":"<p>Pro settings upsell panels in WordPress.org free build (read-only preview + link to ed1.se).<\/p>","2.0.14":"<p>WordPress.org upload scan: Freemius SDK removed from free build.<\/p>","2.0.13":"<p>WordPress.org T3: trialware compliance, text domain edit-eu-withdrawal-requests, org free build fixes.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3586980,"resolution":"128x128","location":"assets","locale":"","width":512,"height":512},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3586980,"resolution":"256x256","location":"assets","locale":"","width":512,"height":512}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.19"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3586980,"resolution":"1","location":"assets","locale":"","width":712,"height":453},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3586980,"resolution":"2","location":"assets","locale":"","width":732,"height":635},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3586980,"resolution":"3","location":"assets","locale":"","width":1024,"height":167},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3586980,"resolution":"4","location":"assets","locale":"","width":1024,"height":183},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3586980,"resolution":"5","location":"assets","locale":"","width":535,"height":685},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3586980,"resolution":"6","location":"assets","locale":"","width":722,"height":279},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3586980,"resolution":"7","location":"assets","locale":"","width":1024,"height":373}},"screenshots":{"1":"Guest withdrawal form \u2014 step 1: find order","2":"Order review and confirmation","3":"Case list in WooCommerce admin","4":"Withdrawal status column in the order list","5":"Withdrawal link in the order confirmation (WooCommerce thank-you \/ order email)","6":"Confirmation after the customer submits a withdrawal request","7":"Case detail in WooCommerce admin (status, order lines, merchant actions)"}},"plugin_section":[],"plugin_tags":[395,9682,55969,245590,286],"plugin_category":[45],"plugin_contributors":[268980],"plugin_business_model":[],"class_list":["post-326715","plugin","type-plugin","status-publish","hentry","plugin_tags-eu","plugin_tags-refund","plugin_tags-returns","plugin_tags-withdrawal","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-christere65","plugin_committers-christere65"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/icon-128x128.png?rev=3586980","icon_2x":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/icon-256x256.png?rev=3586980","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-1.png?rev=3586980","caption":"Guest withdrawal form \u2014 step 1: find order"},{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-2.png?rev=3586980","caption":"Order review and confirmation"},{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-3.png?rev=3586980","caption":"Case list in WooCommerce admin"},{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-4.png?rev=3586980","caption":"Withdrawal status column in the order list"},{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-5.png?rev=3586980","caption":"Withdrawal link in the order confirmation (WooCommerce thank-you \/ order email)"},{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-6.png?rev=3586980","caption":"Confirmation after the customer submits a withdrawal request"},{"src":"https:\/\/ps.w.org\/edit-eu-withdrawal-requests\/assets\/screenshot-7.png?rev=3586980","caption":"Case detail in WooCommerce admin (status, order lines, merchant actions)"}],"raw_content":"<!--section=description-->\n<p>Edit EU Withdrawal Requests for WooCommerce helps online stores comply with the EU right-of-withdrawal directive. Customers can withdraw a purchase from My Account or as a guest, receive an immediate email confirmation, and reach a named contact person \u2014 while you manage every case from WooCommerce.<\/p>\n\n<p><strong>Free (WordPress.org)<\/strong><\/p>\n\n<ul>\n<li>Withdrawal button in My Account and a guest form for non-registered customers<\/li>\n<li>Two-step flow: review the order, then confirm<\/li>\n<li>Immediate email receipt to the customer<\/li>\n<li>Case management with status workflow and customer notifications<\/li>\n<li>14-day standard withdrawal period<\/li>\n<li>Named contact person and support details shown to customers<\/li>\n<li>Link in WooCommerce order emails and optional footer link<\/li>\n<li>Refund-ready merchant workflow: withdrawal status in the order list, shortcut to the order after approval, close the case when the refund is registered<\/li>\n<li>Works on any permalink structure, including \"Plain\"<\/li>\n<li>HPOS compatible<\/li>\n<li>English, Swedish, French, German, and Spanish included<\/li>\n<\/ul>\n\n<p><strong>Pro<\/strong> (separate premium download from edit) unlocks SMS receipts (46elks\/Twilio), PEPP and extended deadlines, partial withdrawal, sticky bar with custom colors, CSV export, statistics, and independent frontend\/admin language overrides. <a href=\"https:\/\/ed1.se\/en\/plugins\/wp\/arw\/#pricing\">Compare plans<\/a><\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can send SMS notifications when the premium version is installed and configured with an SMS provider.<\/p>\n\n<h4>46elks<\/h4>\n\n<p>Used to deliver SMS messages to customers (withdrawal receipt and status updates).\nWhen SMS is enabled, the plugin sends the recipient phone number and message text to 46elks via HTTPS when a withdrawal event occurs.\nService provider: 46elks AB \u2014 Terms: https:\/\/46elks.com\/terms \u2014 Privacy: https:\/\/46elks.com\/privacy-policy<\/p>\n\n<h4>Twilio<\/h4>\n\n<p>Alternative SMS provider. When selected, the plugin sends the recipient phone number and message text to Twilio's API when a withdrawal event occurs.\nService provider: Twilio Inc. \u2014 Terms: https:\/\/www.twilio.com\/legal\/tos \u2014 Privacy: https:\/\/www.twilio.com\/legal\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install from WordPress.org or upload the plugin zip under <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings (Withdrawal)<\/strong> and fill in your contact details.<\/li>\n<\/ol>\n\n<p>On activation the plugin creates a database table for cases and a published \"Withdraw purchase\" page with the guest form.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20guest%20checkout%3F\"><h3>Does this work with guest checkout?<\/h3><\/dt>\n<dd><p>Yes. Guests look up their order with email address and order number, review the purchase, and submit a withdrawal request without logging in.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20refund%20the%20money%3F\"><h3>Does the plugin refund the money?<\/h3><\/dt>\n<dd><p>No. The plugin handles the legal flow: the withdrawal request, receipt, and case management. You issue the refund in WooCommerce via your payment provider. After you approve a case, the plugin offers a shortcut to the order; when a refund is registered it prompts you to close the case.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20included%3F\"><h3>Which languages are included?<\/h3><\/dt>\n<dd><p>English (source), Swedish, French, German, and Spanish. The plugin follows your WordPress site language. Pro can override frontend and admin language independently.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20free%20and%20pro%3F\"><h3>What is the difference between Free and Pro?<\/h3><\/dt>\n<dd><p>The free version covers the EU core requirements. Pro adds SMS, PEPP\/extended deadlines, partial withdrawal, sticky bar with custom colors, CSV export, statistics, and language overrides. See the <a href=\"https:\/\/ed1.se\/en\/plugins\/wp\/arw\/#pricing\">pricing page<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.19<\/h4>\n\n<ul>\n<li>Fixed: WordPress.org trialware \u2014 partial withdrawal code removed from the free build (Pro-only, hosted separately at ed1.se)<\/li>\n<li>Fixed: legacy option migration now uses an explicit whitelist instead of a broad arw_* prefix query<\/li>\n<\/ul>\n\n<h4>2.0.18<\/h4>\n\n<ul>\n<li>Changed: plugin prefix from arw to eeuwr (WordPress.org naming guidelines); legacy arw_* options and database table migrate automatically on upgrade<\/li>\n<li>Changed: shortcodes [eeuwr_guest_form] and [eeuwr_withdrawal_link] (legacy arw_* aliases removed)<\/li>\n<\/ul>\n\n<h4>2.0.17<\/h4>\n\n<ul>\n<li>Changed: Tested up to WordPress 7.0<\/li>\n<\/ul>\n\n<h4>2.0.16<\/h4>\n\n<ul>\n<li>Added: partial withdrawal upsell in settings (Free vs Pro comparison); customer notice on multi-item orders (whole-order withdrawal in free)<\/li>\n<\/ul>\n\n<h4>2.0.15<\/h4>\n\n<ul>\n<li>Added: Pro settings\/admin upsell panels in org free build (read-only preview, link to separate Pro download at ed1.se)<\/li>\n<\/ul>\n\n<h4>2.0.14<\/h4>\n\n<ul>\n<li>Fixed: WordPress.org automated upload scan \u2014 Freemius SDK excluded from org free zip (updates via wordpress.org)<\/li>\n<\/ul>\n\n<h4>2.0.13<\/h4>\n\n<ul>\n<li>Fixed: WordPress.org T3 \u2014 premium-only code removed from free build (sticky bar, stats, partial withdrawal implementations)<\/li>\n<li>Changed: text domain to edit-eu-withdrawal-requests (matches reserved slug)<\/li>\n<li>Changed: Freemius is_premium false automatically in org free build; slug follows main plugin file<\/li>\n<\/ul>\n\n<h4>2.0.12<\/h4>\n\n<ul>\n<li>Fixed: WordPress.org trialware \u2014 premium features use hooks; no license checks in shared code<\/li>\n<li>Fixed: text domain matches plugin slug (edit-eu-withdrawal-requests)<\/li>\n<li>Fixed: 46elks privacy policy URL, Tested up to 6.9, order status setting whitelist<\/li>\n<\/ul>\n\n<h4>2.0.11<\/h4>\n\n<ul>\n<li>Changed: display name to Edit EU Withdrawal Requests for WooCommerce (WordPress.org review)<\/li>\n<li>Changed: premium-only code moved to Freemius-stripped files for WordPress.org free build compliance<\/li>\n<li>Fixed: nonce sanitization, output escaping, register_setting secret sanitizers<\/li>\n<li>Fixed: removed remote banner injection from plugin details modal<\/li>\n<li>Added: External services section in readme (46elks, Twilio)<\/li>\n<\/ul>\n\n<h4>2.0.10<\/h4>\n\n<ul>\n<li>Changed: plugin display name to \u00abRight of Withdrawal (EU Directive)\u00bb for WordPress.org trademark guidelines (WooCommerce remains in description)<\/li>\n<\/ul>\n\n<h4>2.0.9<\/h4>\n\n<ul>\n<li>Fixed: remaining Plugin Check SQL and input sanitization warnings (phpcs, item_ids, order meta nonce)<\/li>\n<\/ul>\n\n<h4>2.0.8<\/h4>\n\n<ul>\n<li>Changed: WordPress.org \/ Plugin Check compatibility \u2014 license header, readme metadata, prepared SQL, input sanitization, debug-only SMS logging<\/li>\n<li>Changed: build zip excludes dev files (screenshots, CLAUDE.md, .gitignore)<\/li>\n<\/ul>","raw_excerpt":"Digital right-of-withdrawal for WooCommerce under the EU directive. Free core features on WordPress.org \u2014 Pro adds SMS, advanced deadlines, and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326715"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/christere65"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326715"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326715"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326715"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326715"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326715"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}