{"id":313815,"date":"2026-06-15T15:29:49","date_gmt":"2026-06-15T15:29:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-withdrawal-form-for-woocommerce\/"},"modified":"2026-06-15T15:48:11","modified_gmt":"2026-06-15T15:48:11","slug":"eniverse-withdrawal-form-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/eniverse-withdrawal-form-for-woocommerce\/","author":20268682,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Eniverse Withdrawal Form for WooCommerce","header_author":"Eniverse","header_description":"EU Directive 2023\/2673 compliant withdrawal form for WooCommerce. Two-step confirmation, automatic emails, admin panel.","assets_banners_color":"","last_updated":"2026-06-15 15:48:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/eniverse.pl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":28,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"eniversepl","date":"2026-06-15 15:48:11"}},"upgrade_notice":{"1.0.0":"<p>Initial release. Install before 19 June 2026 to comply with EU Directive 2023\/2673.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"\"Withdraw from contract\" button on the My Account orders list","2":"Withdrawal form with product selection and quantity fields","3":"Summary view with \"Confirm contract withdrawal\" button","4":"Guest withdrawal form with order verification","5":"Admin \u2014 Withdrawals list with status badges","6":"Admin \u2014 Single withdrawal details with status management","7":"Admin \u2014 Withdrawal metabox in order details","8":"Withdrawal link in order confirmation email"}},"plugin_section":[],"plugin_tags":[255182,263925,263226,245590,286],"plugin_category":[45],"plugin_contributors":[217387],"plugin_business_model":[],"class_list":["post-313815","plugin","type-plugin","status-publish","hentry","plugin_tags-consumer-rights","plugin_tags-eu-directive","plugin_tags-right-of-withdrawal","plugin_tags-withdrawal","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-eniversepl","plugin_committers-eniversepl"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/eniverse-withdrawal-form-for-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Eniverse Withdrawal Form for WooCommerce<\/strong> enables your customers to exercise their right to withdraw from a contract in compliance with <a href=\"https:\/\/eur-lex.europa.eu\/eli\/dir\/2023\/2673\">EU Directive 2023\/2673<\/a>, effective from 19 June 2026.<\/p>\n\n<p>The directive requires every online store selling to EU consumers to provide a clearly labeled, easy-to-find withdrawal mechanism. This plugin does exactly that \u2014 with zero configuration needed after activation.<\/p>\n\n<h4>How it works<\/h4>\n\n<p><strong>For logged-in customers:<\/strong>\nA \"Withdraw from contract\" button appears on the order list and order detail pages inside My Account. Clicking it opens a pre-filled form with the customer's name, order number, and email (locked fields). The customer selects which products to return, optionally provides a reason, reviews a summary, and confirms with a single click.<\/p>\n\n<p><strong>For guest customers:<\/strong>\nA dedicated page is created automatically at activation. Guests enter their order number and email for verification, then follow the same flow. A direct link with a security token is also included in the WooCommerce order confirmation email, allowing one-click access.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>\"Withdraw from contract\" button<\/strong> in My Account \u2192 Orders and Order Details<\/li>\n<li><strong>Dedicated guest page<\/strong> created automatically \u2014 no shortcodes or setup needed<\/li>\n<li><strong>Two-step confirmation<\/strong> (form \u2192 summary \u2192 confirm) per Directive recital 37<\/li>\n<li><strong>Secure email link<\/strong> with one-time token in order confirmation emails<\/li>\n<li><strong>Product selection<\/strong> with checkboxes and quantity fields for partial withdrawals<\/li>\n<li><strong>Status system<\/strong> \u2014 New \u2192 In progress \u2192 Accepted \u2192 Completed \/ Rejected<\/li>\n<li><strong>Automatic emails<\/strong> \u2014 confirmation to customer, notification to admin, updates on every status change<\/li>\n<li><strong>\"Withdrawals\" tab<\/strong> in WooCommerce admin with badge counter for new requests<\/li>\n<li><strong>Order integration<\/strong> \u2014 metabox in order details, status column in order list, automatic order notes<\/li>\n<li><strong>Auto-refund<\/strong> \u2014 changing status to \"Completed\" automatically creates a WooCommerce refund<\/li>\n<li><strong>Configurable withdrawal period<\/strong> \u2014 default 14 days, adjustable in settings<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 works with WooCommerce High-Performance Order Storage<\/li>\n<li><strong>Translation ready<\/strong> \u2014 all strings internationalized, Polish translation included<\/li>\n<\/ul>\n\n<h4>EU Directive 2023\/2673 compliance<\/h4>\n\n<ul>\n<li>Button labeled \"Withdraw from contract\" \/ \"Withdraw from contract here\" as required<\/li>\n<li>Final confirmation button labeled \"Confirm contract withdrawal\"<\/li>\n<li>Two-step confirmation process (recital 37 \u2014 double-click requirement)<\/li>\n<li>Immediate email confirmation with date, time, and full content of the withdrawal statement<\/li>\n<li>Withdrawal function available throughout the entire statutory withdrawal period<\/li>\n<li>Disabled button with tooltip after period expiry (button remains visible)<\/li>\n<\/ul>\n\n<h4>Who is this for?<\/h4>\n\n<p>Any WooCommerce store selling to consumers in the European Union. The directive applies regardless of where your business is based \u2014 if you target EU consumers, compliance is mandatory from 19 June 2026 with no transition period.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>eniverse-withdrawal-form-for-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Done \u2014 the withdrawal page and buttons are active immediately with no configuration<\/li>\n<\/ol>\n\n<p>Optionally, visit <strong>WooCommerce \u2192 Withdrawals \u2192 Settings<\/strong> to adjust the withdrawal period (default: 14 days).<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20any%20configuration%3F\"><h3>Does this plugin require any configuration?<\/h3><\/dt>\n<dd><p>No. It works out of the box. A dedicated withdrawal page is created automatically on activation, and the \"Withdraw from contract\" button appears in My Account for eligible orders. You can optionally adjust the withdrawal period in WooCommerce \u2192 Withdrawals \u2192 Settings.<\/p><\/dd>\n<dt id=\"when%20does%20the%20withdrawal%20button%20appear%3F\"><h3>When does the withdrawal button appear?<\/h3><\/dt>\n<dd><p>The button appears for orders with status \"Processing\" or \"Completed\", within the configured withdrawal period (default 14 days from delivery). After the period expires, the button remains visible but is disabled with a tooltip explaining that the deadline has passed.<\/p><\/dd>\n<dt id=\"how%20does%20the%20guest%20form%20work%3F\"><h3>How does the guest form work?<\/h3><\/dt>\n<dd><p>A page titled \"Submit a return\" is created automatically. Guest customers enter their order number and email address. The plugin validates the pair and, if correct, loads the product list. A pre-filled link with a security token is also added to the WooCommerce order confirmation email for one-click access.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20change%20the%20status%20to%20%22completed%22%3F\"><h3>What happens when I change the status to \"Completed\"?<\/h3><\/dt>\n<dd><p>The plugin automatically creates a WooCommerce refund for the selected products and amounts, changes the order status to \"Refunded\", and adds a note to the order. A confirmation email is also sent to the customer.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20hpos%20compatible%3F\"><h3>Is this plugin HPOS compatible?<\/h3><\/dt>\n<dd><p>Yes. The plugin fully supports WooCommerce High-Performance Order Storage (custom order tables). It declares HPOS compatibility and uses only order object methods for all meta operations.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20this%20plugin%3F\"><h3>Can I translate this plugin?<\/h3><\/dt>\n<dd><p>Yes. All strings are internationalized using WordPress i18n functions. A Polish translation is included. You can add your own translations using the provided <code>.pot<\/code> file in the <code>\/languages<\/code> directory, or use a plugin like Loco Translate.<\/p><\/dd>\n<dt id=\"does%20this%20handle%20the%20physical%20return%20of%20goods%3F\"><h3>Does this handle the physical return of goods?<\/h3><\/dt>\n<dd><p>No. This plugin handles the legal act of withdrawing from a contract (the customer's statement). Physical return logistics and payment refunds are handled through WooCommerce's built-in functionality. The plugin creates the WooCommerce refund record automatically when you mark a withdrawal as \"Completed\".<\/p><\/dd>\n<dt id=\"what%20statuses%20are%20available%3F\"><h3>What statuses are available?<\/h3><\/dt>\n<dd><ul>\n<li><strong>New<\/strong> \u2014 just submitted, awaiting review<\/li>\n<li><strong>In progress<\/strong> \u2014 under review by the store<\/li>\n<li><strong>Accepted<\/strong> \u2014 withdrawal accepted, awaiting return of goods<\/li>\n<li><strong>Completed<\/strong> \u2014 goods received, refund issued (triggers auto-refund)<\/li>\n<li><strong>Rejected<\/strong> \u2014 withdrawal rejected<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Two-step withdrawal form for logged-in and guest customers<\/li>\n<li>EU Directive 2023\/2673 compliant button labels and flow<\/li>\n<li>Automatic page creation on activation<\/li>\n<li>Secure token-based email links<\/li>\n<li>Product selection with quantity fields<\/li>\n<li>Status management system (New \u2192 In progress \u2192 Accepted \u2192 Completed \/ Rejected)<\/li>\n<li>Email notifications on submission and status changes<\/li>\n<li>Admin panel with withdrawal list, order metabox, and order list column<\/li>\n<li>Automatic WooCommerce refund on \"Completed\" status<\/li>\n<li>Configurable withdrawal period<\/li>\n<li>HPOS compatibility<\/li>\n<li>Polish translation included<\/li>\n<\/ul>","raw_excerpt":"A simple, zero-config contract withdrawal form for WooCommerce \u2014 fully compliant with EU Directive 2023\/2673.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/313815","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=313815"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eniversepl"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=313815"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=313815"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=313815"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=313815"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=313815"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=313815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}