[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fNqPKIyFpPofdLzNkE9gndMpzOcZnpITUFjbl0vHGVEA":3,"$f9VdhK7k89NIm33dRurjie1aURUKLpcCjjPrQ-0grW4k":119,"$fMAHusXij4YSKYpsWn3xhqVmpuGSbQG_tXIoumZtqX0Q":124},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"discovery_status":30,"vulnerabilities":31,"developer":32,"crawl_stats":28,"alternatives":38,"analysis":28,"fingerprints":28},"buddypilot-withdrawal","BuddyPilot Withdrawal – Easy Returns for WooCommerce","1.0.21","BuddyPilot","https:\u002F\u002Fprofiles.wordpress.org\u002Fbuddypilot\u002F","\u003Cp>\u003Cstrong>BuddyPilot Withdrawal – Easy Returns for WooCommerce\u003C\u002Fstrong> adds a complete returns and withdrawal workflow to your store: the mandatory EU withdrawal button required by \u003Cstrong>Article 11a of EU Directive 2023\u002F2673\u003C\u002Fstrong>, an online return form for customers, and a declarations dashboard for the operator.\u003C\u002Fp>\n\u003Cp>From \u003Cstrong>19 June 2026\u003C\u002Fstrong>, every WooCommerce store with EU customers must provide a clearly visible, easily accessible withdrawal function (“withdraw from contract here” button) alongside the existing right of withdrawal informational requirements.\u003C\u002Fp>\n\u003Cp>The plugin works alongside your return policy: the customer withdraws from the contract online during the cooling-off period (14 days by default, configurable), and you process the WooCommerce return and refund with native tools.\u003C\u002Fp>\n\u003Ch4>What the plugin does\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Customer-facing\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Article 11a compliant “Withdraw from contract here” button\u003C\u002Fstrong> on the My Account order detail page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Two-step withdrawal form\u003C\u002Fstrong>: item selection, declaration preview, one-click confirm\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Variable product support\u003C\u002Fstrong>: each variant (size, colour, etc.) appears with its full attribute labels as a separate line in the withdrawal form\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Guest checkout support\u003C\u002Fstrong> via direct verification flow (email + order number, no login required)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>My Account withdrawal history\u003C\u002Fstrong> list and declaration detail page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Article 16(m) consent capture\u003C\u002Fstrong> at checkout for digital and virtual goods (configurable: required, optional, or hidden)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customer declaration email\u003C\u002Fstrong> serving as the durable-medium acknowledgement required by Article 11a(3)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Withdrawal resolved email\u003C\u002Fstrong> sent to the customer after the operator closes the declaration; includes the EU ODR platform link (ec.europa.eu\u002Fconsumers\u002Fodr) when any item is rejected\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Per-item resolution status\u003C\u002Fstrong> visible in the withdrawal form after a declaration is closed: each item shows an “accepted” or “rejected” badge with the rejection reason and ODR link, so the customer understands the outcome without contacting support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Operator-facing\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Order edit metabox\u003C\u002Fstrong> for registering declarations received via phone, mail or in person\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Standalone “Add new declaration” page\u003C\u002Fstrong> for high-volume operator queues without leaving the declarations list\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Declarations list\u003C\u002Fstrong> with search, filtering and sorting in WooCommerce admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Declaration detail page\u003C\u002Fstrong> with full audit trail and resolution workflow: accept all, reject all, or partial resolution with per-item decisions and individual rejection reasons\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin notification email\u003C\u002Fstrong> sent immediately when a customer submits a withdrawal\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Legal and compliance\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Custom order status\u003C\u002Fstrong> \u003Ccode>wc-withdrawal\u003C\u002Fcode> (optional, plugin-registered) with a full change history logged as WooCommerce order notes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Annex I(A) withdrawal information page\u003C\u002Fstrong> available to generate with one click from Settings\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Annex I(B) model withdrawal form page\u003C\u002Fstrong> available to generate with one click from Settings, published as a WordPress page and auto-linked from order emails and My Account\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable refund period\u003C\u002Fstrong> (default 14 days, matches your contract terms)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable “delivered” statuses\u003C\u002Fstrong> that start the withdrawal clock\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Return cost attribution\u003C\u002Fstrong> (consumer pays or trader pays, per Annex I(A) requirements)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR personal data export and anonymisation\u003C\u002Fstrong> compatible with WordPress privacy tools\u003C\u002Fli>\n\u003Cli>\u003Cstrong>HPOS compatibility\u003C\u002Fstrong> (High-Performance Order Storage) and legacy post-meta mode\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WCAG 2.2 AA accessibility\u003C\u002Fstrong> compliance on all customer-facing forms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Polish and English translations\u003C\u002Fstrong> included\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro addon\u003C\u002Fh4>\n\u003Cp>Extended functionality is available via the \u003Ca href=\"https:\u002F\u002Fbuddypilot.io\u002Fplugins\u002Fwithdrawal-pro\u002F\" rel=\"nofollow ugc\">BuddyPilot Withdrawal Pro\u003C\u002Fa> addon:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Operator-approved automatic refund built from declared items (one click from the declaration screen)\u003C\u002Fli>\n\u003Cli>Download-count verification: restores withdrawal right when a digital product was never actually downloaded, reducing unjustified refusal of refunds\u003C\u002Fli>\n\u003Cli>WooCommerce Subscriptions support: cancels future renewals, prorates the current billing period per Article 9(2)(b)(iii)\u003C\u002Fli>\n\u003Cli>WooCommerce Product Bundles support: automatic handling by bundle type; for per-item bundles with a configured discount, choose whether partial returns keep the paid amount or forfeit the entire bundle discount\u003C\u002Fli>\n\u003Cli>PDF export of the legal withdrawal declaration\u003C\u002Fli>\n\u003Cli>Country-specific Annex I(B) form generation\u003C\u002Fli>\n\u003C\u002Ful>\n","Easy returns for WooCommerce: EU withdrawal button (Directive 2023\u002F2673), online return form, cooling-off period tracking and operator workflow.",200,1852,100,3,"2026-07-17T15:52:00.000Z","7.0.2","5.8","7.4",[20,21,22,23,24],"compliance","returns","right-of-withdrawal","withdrawal","woocommerce","https:\u002F\u002Fbuddypilot.io\u002Fplugins\u002Fwithdrawal\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.21.zip",0,null,"2026-07-22T17:31:50.256Z","no_bundle",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"buddypilot",1,30,94,"2026-08-28T19:51:38.977Z",[39,58,72,86,103],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":13,"num_ratings":49,"last_updated":50,"tested_up_to":16,"requires_at_least":51,"requires_php":18,"tags":52,"homepage":56,"download_link":57,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"wt-eu-withdrawal-button","WebToffee EU Order Withdrawal Button for WooCommerce","1.0.7","WebToffee","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebtoffee\u002F","\u003Cp>From June 19, 2026, EU Directive 2023\u002F2673 requires every online store selling to EU consumers to provide a clear, easily accessible online withdrawal function. Customers must be able to cancel a purchase digitally — just as easily as they placed the order.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>EU Withdrawal Button for WooCommerce\u003C\u002Fstrong> by WebToffee makes it straightforward to comply. The plugin adds a withdrawal button to the customer’s My Account orders page, a guided withdrawal form, a two-step confirmation flow, and a dedicated admin dashboard to manage all incoming requests.\u003C\u002Fp>\n\u003Cp>No coding required. Works right out of the box.\u003C\u002Fp>\n\u003Ch4>What the plugin does\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>For your customers:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A “Request Withdrawal” button appears directly on the My Account orders list — visible only during the active withdrawal period\u003C\u002Fli>\n\u003Cli>Customers can select which items to withdraw (full order or individual products)\u003C\u002Fli>\n\u003Cli>A simple form collects their name, email, and an optional reason\u003C\u002Fli>\n\u003Cli>A confirmation step prevents accidental submissions (“Are you sure you want to submit this withdrawal request?”)\u003C\u002Fli>\n\u003Cli>Customers receive an email confirmation once the request is submitted\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>For you as the store admin:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A clean Withdrawals dashboard under WooCommerce > Withdrawals shows all requests at a glance\u003C\u002Fli>\n\u003Cli>At-a-glance stats: open requests and approvals over the last 30 days\u003C\u002Fli>\n\u003Cli>Filter requests by status, date range, or search (order # or receipt hash)\u003C\u002Fli>\n\u003Cli>View full request details — order info, customer email, request type, reason, and a complete activity log\u003C\u002Fli>\n\u003Cli>Approve or reject requests with one click\u003C\u002Fli>\n\u003Cli>Configure who receives admin withdrawal notification emails — defaults to your store email, with support for multiple recipients\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Withdrawal button on the orders page\u003C\u002Fstrong> — visible to customers within the configured withdrawal window\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Partial withdrawal support\u003C\u002Fstrong> — customers can withdraw individual items instead of the entire order\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Two-step confirmation flow\u003C\u002Fstrong> — meets the directive’s requirement to confirm the customer’s intent\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dedicated admin dashboard\u003C\u002Fstrong> — manage, filter, approve, or reject all withdrawal requests in one place\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Add footer link\u003C\u002Fstrong> — optionally embed a withdrawal link in your store footer to meet visibility requirements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Guest withdrawal support\u003C\u002Fstrong> — guest users can submit their order number and billing email, which is matched against WooCommerce order history, then confirmed via an email verification step before the request is created\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Withdrawal button shortcode\u003C\u002Fstrong> — use \u003Ccode>[wt_eu_order_withdrawal]\u003C\u002Fcode> to place a withdrawal button on any page or post.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable withdrawal period\u003C\u002Fstrong> — set the window to 2, 7, 14, or 30 days (EU standard is 14 days), starting from order created or a chosen WooCommerce order status\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Product exclusions\u003C\u002Fstrong> — exclude by product type, entire categories, or specific individual products\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin notification recipients\u003C\u002Fstrong> — choose one or more email addresses to receive new withdrawal request alerts (store email added by default)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customer contact email\u003C\u002Fstrong> — set the address shown to customers in rejection emails so they know who to reach out to\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SHA-256 receipt hash\u003C\u002Fstrong> — every withdrawal request gets a unique SHA-256 receipt hash, included in withdrawal notification emails and shown in the request details on the admin dashboard, for easy reference and record-keeping\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Order status automation\u003C\u002Fstrong> — automatically update order status when a request is submitted or approved\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reason field\u003C\u002Fstrong> — optionally require customers to provide a reason when submitting a request\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Display scope control\u003C\u002Fstrong> — show the withdrawal form globally or limit it to WooCommerce pages only\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data management\u003C\u002Fstrong> — optionally delete all plugin data on uninstall\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Why this matters\u003C\u002Fh4>\n\u003Cp>Under \u003Ca href=\"https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdir\u002F2023\u002F2673\u002Foj\u002Feng\" rel=\"nofollow ugc\">EU Directive 2023\u002F2673\u003C\u002Fa>, any business that lets EU consumers sign up for or purchase something online must also let them cancel online — through the same website or app. Simply hiding a withdrawal form in a footer PDF or asking customers to email you is no longer sufficient.\u003C\u002Fp>\n\u003Cp>The directive specifically requires:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A withdrawal function that is \u003Cstrong>prominently displayed\u003C\u002Fstrong> and \u003Cstrong>continuously available\u003C\u002Fstrong> during the withdrawal period\u003C\u002Fli>\n\u003Cli>The function must be \u003Cstrong>clearly labelled\u003C\u002Fstrong> (e.g. “Withdraw from contract here” or similar)\u003C\u002Fli>\n\u003Cli>A \u003Cstrong>two-step confirmation\u003C\u002Fstrong> to prevent accidental withdrawals\u003C\u002Fli>\n\u003Cli>An \u003Cstrong>acknowledgement of receipt\u003C\u002Fstrong> sent to the customer on a durable medium (e.g. email)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin implements all of the above.\u003C\u002Fp>\n\u003Ch4>Getting started\u003C\u002Fh4>\n\u003Cp>For a complete walkthrough, see the \u003Ca href=\"https:\u002F\u002Fwww.webtoffee.com\u002Fdocs\u002Fwoocommerce-eu-withdrawal\u002Fhow-to-setup-woocommerce-order-withdrawal-button-to-comply-with-eu-directives\u002F\" rel=\"nofollow ugc\">setup guide\u003C\u002Fa> or watch the video below.\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FhXjS5bEtIJY?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install and activate the plugin\u003C\u002Fli>\n\u003Cli>Go to \u003Cstrong>WooCommerce > Withdrawals > Settings\u003C\u002Fstrong> to configure your preferences\u003C\u002Fli>\n\u003Cli>Set your withdrawal page, period, and footer link options\u003C\u002Fli>\n\u003Cli>Publish the withdrawal page (created automatically as a draft on installation)\u003C\u002Fli>\n\u003Cli>Test the flow by placing a test order and using the Request Withdrawal button\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>For questions or assistance, visit our \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwt-eu-withdrawal-button\u002F\" rel=\"ugc\">support page\u003C\u002Fa>.\u003C\u002Fp>\n","Add a legally compliant EU withdrawal button to your WooCommerce store. It allows customers to exercise their 14-day right of withdrawal online.",1000,3342,8,"2026-07-13T05:11:00.000Z","6.0",[53,54,55,22,24],"eu-compliance","eu-directive","eu-withdrawal","https:\u002F\u002Fwww.wordpress.org\u002Fplugins\u002Fwt-eu-withdrawal-button","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwt-eu-withdrawal-button.1.0.7.zip",{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":27,"downloaded":66,"rating":27,"num_ratings":27,"last_updated":67,"tested_up_to":16,"requires_at_least":51,"requires_php":18,"tags":68,"homepage":70,"download_link":71,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"kreativna-eu-withdrawal-manager","Kreativna EU Withdrawal Compliance Manager","1.1.0","Kreativna Agency","https:\u002F\u002Fprofiles.wordpress.org\u002Fnejcr007\u002F","\u003Cp>Kreativna EU Withdrawal Compliance Manager adds a two-step withdrawal request flow designed to assist with EU withdrawal requests. It supports guest and logged-in orders, sends confirmation emails, and logs requests for audit purposes.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Public withdrawal page with a two-step review + confirm flow.\u003C\u002Fli>\n\u003Cli>Works for guest and logged-in orders.\u003C\u002Fli>\n\u003Cli>Eligibility rules with configurable date basis, grace days, and eligible statuses.\u003C\u002Fli>\n\u003Cli>Optional partial withdrawal by selecting items.\u003C\u002Fli>\n\u003Cli>Confirmation email to customer and optional merchant notification.\u003C\u002Fli>\n\u003Cli>Internal audit log with CSV export.\u003C\u002Fli>\n\u003Cli>Shortcodes plus Gutenberg blocks, Elementor widgets, and Bricks elements.\u003C\u002Fli>\n\u003Cli>Multilingual-ready strings with compatibility for WPML, Polylang, and Loco Translate.\u003C\u002Fli>\n\u003Cli>Printable Annex I.B model withdrawal form to assist with EU withdrawal documentation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>[eu_withdrawal_button]\u003C\u002Fcode> — Renders a withdrawal button that links to the configured withdrawal page. Use \u003Ccode>action=\"modal\"\u003C\u002Fcode> to open the flow in a modal.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[eu_withdrawal_flow]\u003C\u002Fcode> — Renders the two-step withdrawal form.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[eu_withdrawal_annex_form]\u003C\u002Fcode> — Renders the Annex I.B model withdrawal form in printable format.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Gutenberg Blocks\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>EU Withdrawal Button\u003C\u002Fli>\n\u003Cli>EU Withdrawal Flow\u003C\u002Fli>\n\u003Cli>EU Withdrawal Annex Form\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Elementor Widgets\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>EU Withdrawal Button\u003C\u002Fli>\n\u003Cli>EU Withdrawal Flow\u003C\u002Fli>\n\u003Cli>EU Withdrawal Annex Form\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bricks Elements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>EU Withdrawal Button\u003C\u002Fli>\n\u003Cli>EU Withdrawal Flow\u003C\u002Fli>\n\u003Cli>EU Withdrawal Annex Form\u003C\u002Fli>\n\u003C\u002Ful>\n","EU withdrawal flow with confirmation emails, logs, and printable forms to assist with EU withdrawal requests.",127,"2026-07-02T10:28:00.000Z",[20,69,21,23,24],"eu","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkreativna-eu-withdrawal-manager.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":27,"downloaded":80,"rating":13,"num_ratings":34,"last_updated":81,"tested_up_to":16,"requires_at_least":51,"requires_php":82,"tags":83,"homepage":84,"download_link":85,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"ncb-right-of-withdrawal-for-woocommerce","NCB Right of Withdrawal for WooCommerce","2.0.2","NCB software","https:\u002F\u002Fprofiles.wordpress.org\u002Fncbsoftware\u002F","\u003Cp>NCB Right of Withdrawal for WooCommerce adds an electronic withdrawal (“right of withdrawal”) function to your WooCommerce store, aligned with the withdrawal-function requirement introduced by Directive (EU) 2023\u002F2673 (Article 11a of the Consumer Rights Directive 2011\u002F83\u002FEU).\u003C\u002Fp>\n\u003Cp>Customers declare withdrawal from a purchase through a guided, two-step form, and you review and process each declaration from a dedicated admin screen.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Guided two-step withdrawal form (order lookup, product selection, confirmation).\u003C\u002Fli>\n\u003Cli>Order drop-down for logged-in customers; guest access via order number + billing email (toggleable).\u003C\u002Fli>\n\u003Cli>Withdrawal button on the customer’s order page (label selectable from presets or a custom value).\u003C\u002Fli>\n\u003Cli>Unique, traceable request numbers (e.g. WD-2026-000001).\u003C\u002Fli>\n\u003Cli>Acknowledgement email recording the date and time of receipt.\u003C\u002Fli>\n\u003Cli>Optional withdrawal-period cut-off.\u003C\u002Fli>\n\u003Cli>Admin management screen with a six-step status workflow, filtering and search.\u003C\u002Fli>\n\u003Cli>Optional status-change emails to customers.\u003C\u002Fli>\n\u003Cli>“Withdrawals” tab in My Account for customers to track requests.\u003C\u002Fli>\n\u003Cli>Full settings screen and a “Refresh withdrawal page” tool.\u003C\u002Fli>\n\u003Cli>GDPR: personal-data exporter, eraser and suggested privacy-policy content.\u003C\u002Fli>\n\u003Cli>Translation-ready, with English, Greek, Italian, German and Spanish included.\u003C\u002Fli>\n\u003Cli>WooCommerce High-Performance Order Storage (HPOS) compatible.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This is a free, GPL plugin. Requires WooCommerce.\u003C\u002Fp>\n\u003Cp>For support, contact support@ncbsoftware.com.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>This plugin provides the technical withdrawal mechanism. Whether your overall setup satisfies Directive (EU) 2023\u002F2673 and its national transposition is a legal question — please have your compliance reviewed by a qualified professional.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","WooCommerce plugin for managing electronic withdrawal requests under EU Directive 2023\u002F2673.",75,"2026-07-10T08:03:00.000Z","8.1",[20,69,21,23,24],"https:\u002F\u002Fncbsoftware.com\u002Fproducts\u002Fncb-right-of-withdrawal-for-woocommerce\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fncb-right-of-withdrawal-for-woocommerce.2.0.2.zip",{"slug":87,"name":88,"version":89,"author":90,"author_profile":91,"description":92,"short_description":93,"active_installs":94,"downloaded":95,"rating":13,"num_ratings":96,"last_updated":97,"tested_up_to":16,"requires_at_least":98,"requires_php":18,"tags":99,"homepage":101,"download_link":102,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"eu-order-withdrawal-button-for-woocommerce","EU Order Withdrawal Button for WooCommerce","2.3.2","vendidero","https:\u002F\u002Fprofiles.wordpress.org\u002Fvendidero\u002F","\u003Cp>EU Order Withdrawal Button for WooCommerce adds compliance with the \u003Ca href=\"https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdir\u002F2023\u002F2673\u002Foj\u002Feng\" rel=\"nofollow ugc\">EU directive 2023\u002F2673\u003C\u002Fa> to WooCommerce. With the help of this little plugin you may easily allow your customers to submit (partial) withdrawal requests to their orders.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Withdrawal request form\u003C\u002Fem> – Use a shortcode to embed a withdrawal request form which works both for guest orders and registered customers.\u003C\u002Fli>\n\u003Cli>\u003Cem>Manage withdrawals\u003C\u002Fem> – Easily manage withdrawals from your WooCommerce order page by either confirming or rejecting requests.\u003C\u002Fli>\n\u003Cli>\u003Cem>Send confirmation emails\u003C\u002Fem> – Automatically confirm receipt of the withdrawal by email including all required information.\u003C\u002Fli>\n\u003Cli>\u003Cem>Partial withdrawals\u003C\u002Fem> – Optionally allow customers to submit partial withdrawal requests.\u003C\u002Fli>\n\u003Cli>\u003Cem>GDPR ready\u003C\u002Fem> – Comes with privacy policy proposal, support for personal data export and erasure.\u003C\u002Fli>\n\u003Cli>\u003Cem>WPML compatibility\u003C\u002Fem> – Comes with built-in compatibility for multilingual shops using WPML.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Initial setup and withdrawal button placement\u003C\u002Fh4>\n\u003Cp>After installation, a new page (withdraw from contract) is created as a draft. This page includes the [eu_owb_order_withdrawal_request_form] shortcode to output the withdrawal form.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Review the page created and your settings under WooCommerce > Settings > Advanced > Withdrawals (In case you are using our plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce-germanized\u002F\" rel=\"ugc\">Germanized for WooCommerce\u003C\u002Fa> find your settings under WooCommerce > Settings > Germanized > General)\u003C\u002Fli>\n\u003Cli>Publish the page containing the withdrawal form shortcode\u003C\u002Fli>\n\u003Cli>Make sure that the withdrawal button is shown in your footer on shop-related pages\u003C\u002Fli>\n\u003Cli>Review the email templates provided to confirm the receipt, confirmation and rejection of withdrawals under WooCommerce > Settings > Emails\u003C\u002Fli>\n\u003Cli>Test the withdrawal procedure both as a guest and as a customer\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>If you don’t want the button to be injected automatically, disable the related setting and either use the shortcode [eu_owb_order_withdrawal_button] to output the button or manually create a link to your withdrawal page within your theme or pagebuilder.\u003C\u002Fp>\n\u003Ch4>Integrated with Shiptastic for WooCommerce\u003C\u002Fh4>\n\u003Cp>Use our plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fshiptastic-for-woocommerce\u002F\" rel=\"ugc\">Shiptastic for WooCommerce\u003C\u002Fa> to handle returns with ease. After confirming a withdrawal request, Shiptastic automatically adds a return shipment including all items of the original request. Provide your customer with all the information needed to return the goods to you. Use Shiptastic to exclude certain products from being returnable at all.\u003C\u002Fp>\n","This plugin helps to comply with the latest EU directive 2023\u002F2673 by embedding a withdrawal button within your WooCommerce store.",4000,16993,5,"2026-07-09T14:07:00.000Z","5.4",[100,20,69,23,24],"cancellation","https:\u002F\u002Fvendidero.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feu-order-withdrawal-button-for-woocommerce.2.3.2.zip",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":47,"downloaded":111,"rating":13,"num_ratings":112,"last_updated":113,"tested_up_to":16,"requires_at_least":51,"requires_php":18,"tags":114,"homepage":117,"download_link":118,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"eu-withdrawal-compliance","EU Withdrawal Compliance","2.1.0","Fernando Tellado","https:\u002F\u002Fprofiles.wordpress.org\u002Ffernandot\u002F","\u003Cp>From \u003Cstrong>June 19, 2026\u003C\u002Fstrong>, EU Directive 2023\u002F2673 obliges every online retailer in the European Union to offer a digital withdrawal function that is at least as easy to use as the purchase flow itself. Most plugins in the directory stop at “a button”. This one ships the \u003Cstrong>complete toolkit\u003C\u002Fstrong> every EU store needs to comply — and a few things competitors don’t offer at any price.\u003C\u002Fp>\n\u003Cp>The plugin helps you implement the right of withdrawal requirements of Directive 2011\u002F83\u002FEU on consumer rights, as amended by Directive (EU) 2019\u002F2161 (the Omnibus Directive).\u003C\u002Fp>\n\u003Ch4>Only this plugin in the directory ships, all of it, for free\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Two-step confirmation function (Art. 11a(3))\u003C\u002Fstrong> — the EU-wide baseline of the online withdrawal right. The public form leads to a review screen with a read-only summary and a dedicated “Confirm withdrawal” button; the request is registered only when that button is pressed, preventing the unintended exercise of the right. Held server-side between the two steps in a single-use token, so it works even without JavaScript.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Complete durable-medium acknowledgement of receipt (Art. 11a(4))\u003C\u002Fstrong>: the confirmation email reproduces the full content of the declaration (name, order, order date, scope, affected products) and the exact date and time of submission, carrying a \u003Cstrong>verifiable SHA-256 receipt hash\u003C\u002Fstrong> as tamper-evident proof — recomputable from the stored fields if a dispute arises.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Annex I.B model withdrawal form\u003C\u002Fstrong> (Directive 2011\u002F83\u002FEU) generated dynamically from your shop data, rendered as a collapsible block below the public form, with a printable view on the same URL. Meets the pre-contractual information obligation of Art. 6(1)(h).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Double-consent checkboxes at the WooCommerce checkout\u003C\u002Fstrong> for the two consents the directive expects to apply specific exceptions:\n\u003Cul>\n\u003Cli>Mandatory consent for digital content (Art. 16(m)) — blocks the place-order step until accepted.\u003C\u002Fli>\n\u003Cli>Optional consent for services started within the 14-day window (Art. 14(4)(a)) — enables pro-rated billing if the customer later withdraws.\u003Cbr \u002F>\nEvery consent is persisted on the order with the exact text shown, accepted\u002Fdeclined state, timestamp, IP and user agent — durable proof in case of dispute.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Single “Withdrawal status” dropdown per product and per category\u003C\u002Fstrong> with four explicit options (Standard, Digital content, Service started early, Other Article 16 exception). Drives both the Article 16 exclusion flag and the matching checkout consent in one place, with full subcategory inheritance.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable public notice on excluded products\u003C\u002Fstrong>, rendered between price and add-to-cart, with separate title+body for digital content and other Article 16 exceptions.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Article 16 exclusions with category inheritance\u003C\u002Fstrong> — competing plugins gate this behind a paid Pro tier; here it’s free.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Native GDPR integration\u003C\u002Fstrong>: suggested Privacy Policy snippet + personal-data exporter + eraser, all keyed on the customer email — no second GDPR plugin to install.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Standalone mode\u003C\u002Fstrong>: the form, shortcode, request log, email notifications, SHA-256 receipt hash, Annex I.B model and GDPR integration all run \u003Cstrong>without WooCommerce\u003C\u002Fstrong>. The plugin always lives in its own top-level \u003Cstrong>Withdrawals\u003C\u002Fstrong> menu (with a \u003Cstrong>Settings\u003C\u002Fstrong> submenu), with or without WooCommerce — same path on every install.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Public-facing pieces\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Public withdrawal page automatically created on activation with a neutral, translation-ready template and the form embedded via shortcode (with a “review with a legal advisor” disclaimer).\u003C\u002Fli>\n\u003Cli>\u003Ccode>[ayudawp_withdrawal_form]\u003C\u002Fcode> shortcode for embedding the form anywhere on the site.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[ayudawp_withdrawal_link]\u003C\u002Fcode> shortcode for a permanent link to the withdrawal page from any widget area, footer or template part — helps meet the “clearly identifiable” requirement of Article 11a of Directive 2023\u002F2673 without forcing a specific footer layout.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[ayudawp_withdrawal_excluded_notice]\u003C\u002Fcode> shortcode to place the excluded-product notice with page builders (Divi, Elementor, Bricks, ShopLentor) that render their own product template and skip the standard WooCommerce hooks.\u003C\u002Fli>\n\u003Cli>HTML5-semantic form with HTML5 validation, honeypot anti-spam, escaped output, sanitized input and CSRF nonces.\u003C\u002Fli>\n\u003Cli>Privacy-policy acceptance checkbox before submit, linked to the WordPress-configured Privacy Policy page.\u003C\u002Fli>\n\u003Cli>Frontend and backend links generated by the plugin carry \u003Ccode>rel=\"noopener nofollow\"\u003C\u002Fcode> to keep the site’s link equity contained.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>WooCommerce-specific pieces (auto-activated when WooCommerce is detected)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>My Account \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Right of withdrawal\u003C\u002Fstrong> endpoint with a per-order “Withdraw” button shown while the order is in an eligible status, deep-linked to the form with the order pre-filled.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Withdrawal notice injected into transactional emails\u003C\u002Fstrong> (processing, completed, customer invoice) with a direct link to the form pre-filled with the order number. Eligible order statuses configurable; admin emails never receive the notice.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic verification of the order\u002Femail pair\u003C\u002Fstrong> when WooCommerce is active: the request is matched to a real order and gated by the configured eligible statuses. The 14-day deadline is surfaced as an advisory flag for the admin, not an automatic rejection (the period legally runs from delivery, which the shop verifies).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Optional “Accept unmatched requests” mode\u003C\u002Fstrong>: register requests that do not match any order as \u003Cem>Unverified\u003C\u002Fem> for manual review instead of rejecting them upfront, highlighted across the admin (notification email, list badge, detail warning and CSV column). Off by default.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable advisory deadline\u003C\u002Fstrong>: choose order date vs. WooCommerce completion date as the basis, plus optional grace days, for the deadline flag surfaced to the admin — all from the settings UI, no code.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Order-number compatibility\u003C\u002Fstrong> with Sequential Order Numbers (free and Pro) and Custom Order Numbers for WooCommerce (both Tyche and WPFactory) out of the box, plus a filter to add any other numbering plugin or resolver.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Withdrawal” column\u003C\u002Fstrong> on the WooCommerce orders screen (legacy and HPOS) showing the status of any linked request, toggleable from Screen Options.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Private order notes\u003C\u002Fstrong> added at every lifecycle step (request received, accepted, rejected, completed) including any admin comment.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>HPOS-compatible\u003C\u002Fstrong> from day one, declared via \u003Ccode>FeaturesUtil::declare_compatibility()\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Admin tooling\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Full request log\u003C\u002Fstrong> as a private custom post type with status lifecycle (pending \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> accepted \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> rejected \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> completed), customer details, scope (full \u002F partial), IP, user agent and UTC submission timestamp for legal traceability.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CSV export of the request log\u003C\u002Fstrong> for accounting and consumer-protection audits: an “Export to CSV” bulk action on the listing plus a filtered export by status and date range under \u003Cstrong>Withdrawals \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Export withdrawals\u003C\u002Fstrong>. Columns include submission and resolution timestamps, scope, status, acknowledgement-delivery flag, receipt hash and excluded items, with cells escaped against CSV\u002Fformula injection.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Audit trail per request\u003C\u002Fstrong>: resolution timestamp recorded on every status change and a flag for whether the acknowledgement email was accepted for delivery (with its timestamp), both shown in the request detail and the CSV as burden-of-proof evidence.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk actions\u003C\u002Fstrong> to mark several requests as accepted, rejected or completed at once, with email notification on transition.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Status metabox\u003C\u002Fstrong> with required comment when rejecting, optional comment when completing — comment forwarded to the customer email.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Acknowledgement email to the customer\u003C\u002Fstrong> on confirmation: the Art. 11a(4) durable-medium receipt with the full declaration content, the date and time of submission and the SHA-256 hash as proof, plus a follow-up email on every status transition.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Notification email to the shop admin\u003C\u002Fstrong> with reply-to set to the customer, sanitized against header injection.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Captured checkout consents\u003C\u002Fstrong> surfaced in the request detail metabox: exact text, accepted\u002Fdeclined state, timestamp, IP, user agent — durable proof on file.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Consistent admin menu\u003C\u002Fstrong>: always a top-level \u003Cstrong>Withdrawals\u003C\u002Fstrong> menu with a \u003Cstrong>Settings\u003C\u002Fstrong> submenu, regardless of whether WooCommerce is active. Same path on every install.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Legal disclaimer block\u003C\u002Fstrong> in the settings page making it explicit that the plugin provides optional technical tools and does not guarantee legal compliance.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mandatory \u002F Recommended \u002F Optional tags\u003C\u002Fstrong> on every setting description so the merchant can scan the form quickly.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Built for production\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Conditional asset loading: CSS only loads on the withdrawal page, single-product pages that actually show the excluded notice, and plugin admin screens.\u003C\u002Fli>\n\u003Cli>Translation-ready, bundled es_ES translation, follows WordPress Coding Standards, fully escaped output and sanitized input, capability checks and nonces on every admin action.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>11 documented filters and 4 actions\u003C\u002Fstrong> for developers and agencies to extend the plugin without forking.\u003C\u002Fli>\n\u003Cli>PHP 7.4+, WordPress 6.0+, WooCommerce 7.0+ (optional).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Why this plugin?\u003C\u002Fh3>\n\u003Cp>The EU directive becomes enforceable in every member state on June 19, 2026, so the WordPress.org directory is filling up with “withdrawal button” plugins. This one stands out for verifiable reasons:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Fully free, no paid tier.\u003C\u002Fstrong> No premium add-on, no feature locked behind an upsell, no “Pro” version on the horizon. Everything documented on this page is what you get on install.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Two-step “confirm withdrawal” function built in\u003C\u002Fstrong>, the EU-wide baseline of Article 11a(3): the public form shows a read-only review screen and registers the request only after explicit confirmation, fully server-side and working without JavaScript — where many “button-only” plugins register the request on the very first click.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The only plugin in the directory\u003C\u002Fstrong> that issues a SHA-256 receipt hash as durable-medium proof of every withdrawal request, recoverable from the stored fields if a dispute later arises.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The only plugin in the directory\u003C\u002Fstrong> that ships the \u003Cstrong>Annex I.B model withdrawal form\u003C\u002Fstrong> dynamically generated from the shop data, with a printable view — meeting the Art. 6(1)(h) information obligation that the new directive does \u003Cem>not\u003C\u002Fem> replace.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The only plugin in the directory\u003C\u002Fstrong> that injects the \u003Cstrong>two consent checkboxes\u003C\u002Fstrong> (Art. 16(m) digital content and Art. 14(4)(a) service started early) at the WooCommerce checkout, with durable proof persisted on the order.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The only plugin in the directory\u003C\u002Fstrong> that ships \u003Cstrong>Article 16 product\u002Fcategory exclusions with full subcategory inheritance\u003C\u002Fstrong> — competing plugins gate this behind their own paid Pro tier.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Native integration with the WordPress GDPR tools\u003C\u002Fstrong> (Privacy Policy snippet + personal-data exporter and eraser) — no second GDPR plugin to install.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Standalone or with WooCommerce.\u003C\u002Fstrong> Works without WooCommerce as a self-contained tool (form, shortcode, log, emails, SHA-256, GDPR, Annex I.B) and lights up store-specific features automatically when WooCommerce is detected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Compatible by default\u003C\u002Fstrong> with Sequential Order Numbers (free and Pro) and Custom Order Numbers for WooCommerce (Tyche and WPFactory), with a filter for any other numbering scheme.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable from the settings UI\u003C\u002Fstrong>, without writing code: deadline basis (order date vs. completion date) and grace days plus an optional strict deadline mode, eligible order statuses, withdrawal page, notification email (now accepting several recipients), email sender and editable status-email texts, consent text per type, excluded-notice text per type, editable form intro, optional B2B consumer self-declaration, Annex I.B trader address\u002Fphone\u002Femail, and which roles may manage requests.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer-friendly\u003C\u002Fstrong>: 11 documented filters + 4 actions so agencies can extend it without forking.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Maintained by a Spanish WordPress trainer with 20+ years on the platform\u003C\u002Fstrong>: bundled es_ES translation, prompt replies on the WordPress.org support forum and an active roadmap of free improvements (classic widget, Gutenberg block, dashboard widget, custom WC order status and more — all free).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Roadmap\u003C\u002Fh3>\n\u003Cp>Planned for upcoming free versions:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>WooCommerce Checkout block support\u003C\u002Fstrong> for the Art. 16(m) and Art. 14(4)(a) consent checkboxes, using \u003Ccode>woocommerce_register_additional_checkout_field()\u003C\u002Fcode> so the consents work on stores that have already migrated from the classic \u003Ccode>[woocommerce_checkout]\u003C\u002Fcode> shortcode to the block.\u003C\u002Fli>\n\u003Cli>Classic widget to surface the withdrawal link in themes with widget areas.\u003C\u002Fli>\n\u003Cli>Gutenberg block for the withdrawal link, fully supported in block themes (align, color, typography).\u003C\u002Fli>\n\u003Cli>Dashboard widget with counters, pending requests and monthly basic stats.\u003C\u002Fli>\n\u003Cli>Custom WooCommerce order status “Withdrawal requested” with automatic transition on acceptance.\u003C\u002Fli>\n\u003Cli>Urgency indicators in the request list (days remaining, expired).\u003C\u002Fli>\n\u003Cli>PDF download of the request with the SHA-256 receipt hash printed on it, reusing the same standalone-print infrastructure as the Annex I.B view.\u003C\u002Fli>\n\u003Cli>Signed token in the email link so guest customers can check status without logging in.\u003C\u002Fli>\n\u003Cli>Rate limiting on the public form to prevent abuse.\u003C\u002Fli>\n\u003Cli>Optional IBAN field to speed up manual refunds.\u003C\u002Fli>\n\u003Cli>HTML email templates that inherit the WooCommerce email theme.\u003C\u002Fli>\n\u003Cli>Optional modal display mode for the shortcode.\u003C\u002Fli>\n\u003Cli>Visible audit log on each request detail screen (status transitions, admin comments, email-delivery timestamps).\u003C\u002Fli>\n\u003Cli>Optional opt-in auto-injection of the withdrawal link in \u003Ccode>wp_footer\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>This plugin stores the following personal data for each withdrawal request, exclusively to fulfil the legal traceability of consumer rights and to allow the shop to handle the request:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Customer name and email address (required to contact the consumer about the request).\u003C\u002Fli>\n\u003Cli>Order reference and order date (required to validate the request against the purchase).\u003C\u002Fli>\n\u003Cli>IP address and User-Agent string (required to evidence when and how the request was submitted, in line with the directive’s “durable medium” requirement).\u003C\u002Fli>\n\u003Cli>Submission timestamp (UTC) and SHA-256 receipt hash (required to recompute and verify the integrity of the original submission if disputed).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Data is stored as a private custom post type entry (\u003Ccode>ayudawp_withdrawal\u003C\u002Fcode>) accessible only to administrators. The plugin does not transmit any data to third-party services; all communication happens between the shop and the customer via standard WordPress emails.\u003C\u002Fp>\n\u003Cp>You should add a section to your site’s privacy policy describing this storage. The plugin contributes a suggested Privacy Policy snippet that you can paste from \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Privacy \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Policy Guide\u003C\u002Fstrong>. Withdrawal data is also exposed to the native WordPress \u003Cstrong>Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Export Personal Data\u003C\u002Fstrong> and \u003Cstrong>Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Erase Personal Data\u003C\u002Fstrong> screens (filtered by customer email).\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Need private support or custom development?\u003C\u002Fp>\n\u003Cp>Do you need one-on-one help, priority troubleshooting, or a custom feature, integration, or tweak built specifically for your site? I offer private support and custom development. Just \u003Ca href=\"mailto:eu-withdrawal-compliance@ayudawp.com\" rel=\"nofollow ugc\">contact me\u003C\u002Fa> and tell me what you need.\u003C\u002Fp>\n\u003Cp>Need help or have suggestions?\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fservicios.ayudawp.com\" rel=\"nofollow ugc\">Official website\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Feu-withdrawal-compliance\u002F\" rel=\"ugc\">WordPress support forum\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002FAyudaWordPressES\" rel=\"nofollow ugc\">YouTube channel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fayudawp.com\" rel=\"nofollow ugc\">Documentation and tutorials\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Love the plugin? Please leave us a 5-star review and help spread the word!\u003C\u002Fp>\n\u003Ch3>About AyudaWP.com\u003C\u002Fh3>\n\u003Cp>We are specialists in WordPress security, SEO, AI and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.\u003C\u002Fp>\n","Free, complete EU Directive 2023\u002F2673 toolkit: withdrawal button, checkout consents, Annex I.B form, Article 16 exclusions, SHA-256 proof.",5163,14,"2026-07-17T22:30:00.000Z",[20,115,116,23,24],"consumer-rights","gdpr","https:\u002F\u002Fservicios.ayudawp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feu-withdrawal-compliance.2.1.0.zip",{"error":120,"url":121,"statusCode":122,"statusMessage":123,"message":123},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fbuddypilot-withdrawal\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":125,"versions":126},19,[127,133,140,147,154,161,168,175,182,189,196,203,210,217,223,230,237,244,251],{"version":6,"download_url":26,"svn_tag_url":128,"released_at":28,"has_diff":129,"diff_files_changed":130,"diff_lines":28,"trac_diff_url":131,"vulnerabilities":132,"is_current":120},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.21\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.20&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.21",[],{"version":134,"download_url":135,"svn_tag_url":136,"released_at":28,"has_diff":129,"diff_files_changed":137,"diff_lines":28,"trac_diff_url":138,"vulnerabilities":139,"is_current":129},"1.0.20","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.20.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.20\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.19&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.20",[],{"version":141,"download_url":142,"svn_tag_url":143,"released_at":28,"has_diff":129,"diff_files_changed":144,"diff_lines":28,"trac_diff_url":145,"vulnerabilities":146,"is_current":129},"1.0.19","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.19.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.19\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.18&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.19",[],{"version":148,"download_url":149,"svn_tag_url":150,"released_at":28,"has_diff":129,"diff_files_changed":151,"diff_lines":28,"trac_diff_url":152,"vulnerabilities":153,"is_current":129},"1.0.18","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.18.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.18\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.17&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.18",[],{"version":155,"download_url":156,"svn_tag_url":157,"released_at":28,"has_diff":129,"diff_files_changed":158,"diff_lines":28,"trac_diff_url":159,"vulnerabilities":160,"is_current":129},"1.0.17","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.17.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.17\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.16&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.17",[],{"version":162,"download_url":163,"svn_tag_url":164,"released_at":28,"has_diff":129,"diff_files_changed":165,"diff_lines":28,"trac_diff_url":166,"vulnerabilities":167,"is_current":129},"1.0.16","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.16.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.16\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.15&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.16",[],{"version":169,"download_url":170,"svn_tag_url":171,"released_at":28,"has_diff":129,"diff_files_changed":172,"diff_lines":28,"trac_diff_url":173,"vulnerabilities":174,"is_current":129},"1.0.15","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.15.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.15\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.14&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.15",[],{"version":176,"download_url":177,"svn_tag_url":178,"released_at":28,"has_diff":129,"diff_files_changed":179,"diff_lines":28,"trac_diff_url":180,"vulnerabilities":181,"is_current":129},"1.0.14","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.14.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.14\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.13&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.14",[],{"version":183,"download_url":184,"svn_tag_url":185,"released_at":28,"has_diff":129,"diff_files_changed":186,"diff_lines":28,"trac_diff_url":187,"vulnerabilities":188,"is_current":129},"1.0.13","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.13.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.13\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.12&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.13",[],{"version":190,"download_url":191,"svn_tag_url":192,"released_at":28,"has_diff":129,"diff_files_changed":193,"diff_lines":28,"trac_diff_url":194,"vulnerabilities":195,"is_current":129},"1.0.12","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.12.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.12\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.10&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.12",[],{"version":197,"download_url":198,"svn_tag_url":199,"released_at":28,"has_diff":129,"diff_files_changed":200,"diff_lines":28,"trac_diff_url":201,"vulnerabilities":202,"is_current":129},"1.0.10","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.10.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.10\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.9&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.10",[],{"version":204,"download_url":205,"svn_tag_url":206,"released_at":28,"has_diff":129,"diff_files_changed":207,"diff_lines":28,"trac_diff_url":208,"vulnerabilities":209,"is_current":129},"1.0.9","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.9.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.9\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.8&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.9",[],{"version":211,"download_url":212,"svn_tag_url":213,"released_at":28,"has_diff":129,"diff_files_changed":214,"diff_lines":28,"trac_diff_url":215,"vulnerabilities":216,"is_current":129},"1.0.8","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.8.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.8\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.7&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.8",[],{"version":42,"download_url":218,"svn_tag_url":219,"released_at":28,"has_diff":129,"diff_files_changed":220,"diff_lines":28,"trac_diff_url":221,"vulnerabilities":222,"is_current":129},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.7.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.7\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.6&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.7",[],{"version":224,"download_url":225,"svn_tag_url":226,"released_at":28,"has_diff":129,"diff_files_changed":227,"diff_lines":28,"trac_diff_url":228,"vulnerabilities":229,"is_current":129},"1.0.6","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.6.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.6\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.5&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.6",[],{"version":231,"download_url":232,"svn_tag_url":233,"released_at":28,"has_diff":129,"diff_files_changed":234,"diff_lines":28,"trac_diff_url":235,"vulnerabilities":236,"is_current":129},"1.0.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.5\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.4&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.5",[],{"version":238,"download_url":239,"svn_tag_url":240,"released_at":28,"has_diff":129,"diff_files_changed":241,"diff_lines":28,"trac_diff_url":242,"vulnerabilities":243,"is_current":129},"1.0.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.3&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.4",[],{"version":245,"download_url":246,"svn_tag_url":247,"released_at":28,"has_diff":129,"diff_files_changed":248,"diff_lines":28,"trac_diff_url":249,"vulnerabilities":250,"is_current":129},"1.0.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.2&new_path=%2Fbuddypilot-withdrawal%2Ftags%2F1.0.3",[],{"version":252,"download_url":253,"svn_tag_url":254,"released_at":28,"has_diff":129,"diff_files_changed":255,"diff_lines":28,"trac_diff_url":28,"vulnerabilities":256,"is_current":129},"1.0.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypilot-withdrawal.1.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbuddypilot-withdrawal\u002Ftags\u002F1.0.2\u002F",[],[]]