[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fByIlbu_633HorllrsIKJx-s9XarbzsbOvLY_lk1QarA":3,"$fG2qdFU262Ht8aRv_CgOY70ejNyYhDzQ0TrYlnmTbZb4":130,"$f0Us4lNw1eE1dEM2hMWbpONKE-4RNjKK9uz1ukuYgH4g":135},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":11,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":36,"analysis":26,"fingerprints":26},"wwu-withdrawal-button","WWU Right of Withdrawal for Popular Ecommerce Platforms","1.4.0","Edoardo G.","https:\u002F\u002Fprofiles.wordpress.org\u002Fmredodos\u002F","\u003Cp>Product page & docs: \u003Ca href=\"https:\u002F\u002Fwebwakeup.it\u002Fwwu-withdrawal-button\u002F\" rel=\"nofollow ugc\">webwakeup.it\u002Fwwu-withdrawal-button\u003C\u002Fa> | source code, issues & contributions: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAn-Idea-For-Business\u002Fwwu-withdrawal-button\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>From 19 June 2026, EU law (Directive (EU) 2023\u002F2673, new Art. 11a of the Consumer Rights Directive; Italy: Art. 54-bis Codice del Consumo) requires online stores to provide a \u003Cstrong>withdrawal function\u003C\u002Fstrong> that lets consumers withdraw from a distance contract as easily as they concluded it. WWU Withdrawal Button adds that function — and everything around it you need to run it and to prove you did it right — to WooCommerce, FluentCart and Easy Digital Downloads.\u003C\u002Fp>\n\u003Ch4>How it works (in plain terms)\u003C\u002Fh4>\n\u003Col>\n\u003Cli>An eligible customer opens their order and clicks the statutory \u003Cstrong>“Withdraw from contract here”\u003C\u002Fstrong> button — in their account, from a link in the order e-mail, or on a public page (no account needed: they look the order up with its number + e-mail).\u003C\u002Fli>\n\u003Cli>A simple \u003Cstrong>two-step form\u003C\u002Fstrong> appears: they review what they are withdrawing from (optionally ticking only some items — partial withdrawal is allowed), then confirm. No reason required, no hoops.\u003C\u002Fli>\n\u003Cli>The instant they confirm, the customer receives an \u003Cstrong>acknowledgement of receipt on a durable medium\u003C\u002Fstrong> — an e-mail, a PDF copy and a permanent verifiable link — showing exactly what was withdrawn and the precise date and time. The order is flagged “withdrawal requested”.\u003C\u002Fli>\n\u003Cli>Every step is written to a \u003Cstrong>tamper-evident, append-only log\u003C\u002Fstrong> (hash-chained and timestamped) so you can prove what happened and when. You then handle the refund as usual — the plugin records that too.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>That is the whole customer experience. Everything below exists to make it correct, easy to run, and defensible.\u003C\u002Fp>\n\u003Ch4>For your customers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>A prominently displayed, legible button with the \u003Cstrong>exact statutory wording per language\u003C\u002Fstrong> (IT, EN, DE, FR, ES, SV — extensible).\u003C\u002Fli>\n\u003Cli>The button appears where customers actually look: the \u003Cstrong>account area\u003C\u002Fstrong> (order list, order detail, a dedicated “Right of withdrawal” tab), a \u003Cstrong>link inside order e-mails\u003C\u002Fstrong>, a \u003Cstrong>public self-service page\u003C\u002Fstrong> with guest lookup, and anywhere via \u003Cstrong>shortcodes\u003C\u002Fstrong> or the \u003Cstrong>Gutenberg block\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>A short, reassuring \u003Cstrong>step-by-step guide\u003C\u002Fstrong> during the flow (timing, refund, returns); the wording and the withdrawal window (≥14 days — you may grant more) are editable.\u003C\u002Fli>\n\u003Cli>When an order is genuinely exempt, a clear \u003Cstrong>“why is the button not here” note\u003C\u002Fstrong> explains the specific legal exception, instead of leaving the customer confused.\u003C\u002Fli>\n\u003Cli>A human-readable \u003Cstrong>verification certificate\u003C\u002Fstrong> for the receipt (integrity, order, date, hash) — not raw code.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>For you (the merchant)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>An onboarding \u003Cstrong>Dashboard\u003C\u002Fstrong> with a setup checklist (one-click fixes), a plain “how it works” walkthrough, and a “where the button appears \u002F why it might not” explainer.\u003C\u002Fli>\n\u003Cli>A one-click \u003Cstrong>e-mail delivery test\u003C\u002Fstrong> that detects your SMTP plugin and proves the receipt actually reaches the inbox — the #1 cause of “nothing happened”.\u003C\u002Fli>\n\u003Cli>A \u003Cstrong>Requests dashboard\u003C\u002Fstrong> to manage every withdrawal: status (open \u002F processed \u002F refunded), a chain-integrity badge, and one-click \u003Cstrong>mark processed\u003C\u002Fstrong>, \u003Cstrong>resend receipt\u003C\u002Fstrong> and \u003Cstrong>open the order to refund\u003C\u002Fstrong> (the refund is logged as proof you met the 14 days). Subscription and partial-withdrawal requests are flagged.\u003C\u002Fli>\n\u003Cli>A \u003Cstrong>Compliance page\u003C\u002Fstrong>: a go-live countdown, the statutory labels in use, the document checklist with ready-to-paste clauses, and environment warnings (Complianz \u002F cache \u002F multilingual) to fix.\u003C\u002Fli>\n\u003Cli>Receipts are \u003Cstrong>real WooCommerce e-mails\u003C\u002Fstrong> (your logo, colours, header) with a preview. The withdrawal button and form \u003Cstrong>inherit your theme’s typography and colour presets\u003C\u002Fstrong> out of the box, so they blend in automatically; for finer control, restyle every part from \u003Cstrong>Appearance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Customize \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Additional CSS\u003C\u002Fstrong> (built into WordPress), targeting the plugin’s documented CSS variables and classes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Smart legal handling (so you don’t have to think about it)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Subscriptions\u003C\u002Fstrong> — the law gives one 14-day right per contract, so the button shows on the \u003Cstrong>initial order only\u003C\u002Fstrong> and is hidden on renewals (WooCommerce Subscriptions, FluentCart, EDD Recurring). Fail-safe, with opt-in overrides.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Partial withdrawal\u003C\u002Fstrong> — customers can withdraw from only some items of an order.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Art. 59 exemptions\u003C\u002Fstrong> — tag products or categories by the specific statutory reason (events on a fixed date, digital content with immediate access, a service fully performed…). For the conditional reasons the plugin captures the customer’s \u003Cstrong>express consent at checkout\u003C\u002Fstrong> (WooCommerce classic + block, FluentCart, EDD), stores it as evidence, sends the required durable-medium confirmation, and only then hides the button. \u003Cstrong>Physical products always keep the right\u003C\u002Fstrong> — never hidden by mistake.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Applicability by country\u003C\u002Fstrong> — EU\u002FEEA consumers only (default) or always; B2B (VAT) orders can be treated as out of scope.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Evidence, timestamps & integrity\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The immutable log is \u003Cstrong>append-only and hash-chained\u003C\u002Fstrong> (HMAC-keyed with your site secret), so tampering is detectable.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Recommended\u003C\u002Fstrong> trusted timestamping (off by default — one click to enable): free, independently-verifiable \u003Cstrong>OpenTimestamps\u003C\u002Fstrong> (Bitcoin) anchoring, or a \u003Cstrong>qualified eIDAS RFC 3161\u003C\u002Fstrong> timestamp (a free Sectigo endpoint, or your national authority — Aruba, InfoCert, D-Trust, Universign, FNMT, SwissSign), for an independent \u003Cstrong>“data certa”\u003C\u002Fstrong> of when each withdrawal was received. The hash chain is the baseline evidence on its own; once you enable a provider, failed stamps retry automatically and any not-yet-anchored records are surfaced in the admin. (It is off by default only because WordPress.org requires external calls to be opt-in — the plugin prompts you to switch it on.)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy & GDPR\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The log commits to an \u003Cstrong>anonymised IP\u003C\u002Fstrong>; the full IP lives separately and is \u003Cstrong>erased after a configurable retention\u003C\u002Fstrong> (10 years by default).\u003C\u002Fli>\n\u003Cli>A \u003Cstrong>Consent records\u003C\u002Fstrong> screen lists and exports the exemption consents (CSV). Two ready-to-paste privacy clauses are generated (withdrawal log + exemption-consent), on a legitimate-interest basis. The uninstaller keeps the evidence log by default (legal hold) unless you opt to erase it.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Documents & compliance\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Generates the \u003Cstrong>Annex I-B model withdrawal form\u003C\u002Fstrong> — with its “To …” recipient line filled from your \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Seller details\u003C\u002Fstrong> (business name, geographical address, contact e-mail) — and ready clauses for \u003Cstrong>pre-contractual information, Terms & Conditions and Privacy\u003C\u002Fstrong> — and reminds you, clearly, that installing the button is \u003Cstrong>not enough\u003C\u002Fstrong>: your Terms and pre-contractual withdrawal article must be updated to describe the new button modality (the plugin gives you the exact text to paste).\u003C\u002Fli>\n\u003Cli>A single \u003Cstrong>consolidated “Right of withdrawal” notice\u003C\u002Fstrong>, assembled live from your settings and the Art. 59 exceptions you selected, published three ways: the \u003Cstrong>\u003Ccode>[webwakeupwdb_policy]\u003C\u002Fcode> shortcode\u003C\u002Fstrong>, an \u003Cstrong>auto-created page\u003C\u002Fstrong> (one click to recreate it if you delete it) or a downloadable \u003Cstrong>PDF\u003C\u002Fstrong> — all managed from \u003Cstrong>Compliance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> “Informativa sul diritto di recesso”\u003C\u002Fstrong> (preview \u002F create \u002F open \u002F \u003Cstrong>freeze\u003C\u002Fstrong> to static HTML \u002F download). Optionally, two opt-in toggles append the same clauses to your \u003Cstrong>Complianz\u003C\u002Fstrong> Privacy Policy and Terms & Conditions (EU-only, off by default, with a live preview). It complements — it does \u003Cstrong>not\u003C\u002Fstrong> replace — your own legal texts.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Integrations & automation\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>A \u003Cstrong>read-only REST API\u003C\u002Fstrong> (authenticated with a standard Application Password) to list requests and check an order’s withdrawal status, plus an optional \u003Cstrong>signed webhook\u003C\u002Fstrong> (HMAC-SHA256) fired the moment a withdrawal is confirmed — for Zapier, Make, n8n, a CRM or a helpdesk. Privacy-first: the consumer’s IP is never exposed. \u003Cstrong>33 documented hooks\u002Ffilters\u003C\u002Fstrong> for developers.\u003C\u002Fli>\n\u003Cli>Plays nicely with \u003Cstrong>Complianz\u003C\u002Fstrong>, \u003Cstrong>TranslatePress\u003C\u002Fstrong> and page-cache plugins (WP Rocket \u002F LiteSpeed \u002F W3TC).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Platforms & licence\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>WooCommerce (HPOS + legacy), FluentCart and Easy Digital Downloads (3.0+)\u003C\u002Fstrong> through a common adapter — one plugin for all three. On FluentCart it can step aside automatically if FluentCart ships its own native withdrawal add-on, so customers never see two buttons.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Free and open source\u003C\u002Fstrong> (GPLv3) — no upsell, no tracking, no remote scripts or fonts loaded on your site. Passed a full multi-dimension security audit (0 critical \u002F 0 high).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is a technical aid to compliance and is \u003Cstrong>not legal advice\u003C\u002Fstrong>. Have your own counsel review your store’s documents.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin makes \u003Cstrong>no external calls by default\u003C\u002Fstrong>. Every outbound connection listed below is \u003Cstrong>opt-in\u003C\u002Fstrong> and stays \u003Cstrong>off\u003C\u002Fstrong> until you explicitly enable it in the settings. The tamper-evident log works fully offline — it is append-only and hash-chained with your site secret — so timestamping only \u003Cem>adds\u003C\u002Fem> an extra, independently-verifiable anchor; it is never required for the plugin to function.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>OpenTimestamps\u003C\u002Fstrong> (opt-in, off by default) — only if you set the timestamp provider to “OpenTimestamps” (Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Receipt & evidence) does the plugin connect to the OpenTimestamps public calendar servers to obtain a free, trusted timestamp (a “data certa”) for the log.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>What is sent:\u003C\u002Fstrong> only a SHA-256 hash (a one-way digest) of the immutable-log record, plus a random privacy nonce. No personal data, order content, names, emails or IP addresses are ever sent — only an opaque hash that cannot be reversed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> only while the provider is enabled — once when a withdrawal is confirmed (to submit the hash) and periodically via WP-Cron (to retrieve the Bitcoin-anchored proof). Nothing is ever sent while the provider is “None” (the default).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Where:\u003C\u002Fstrong> the OpenTimestamps public calendars (a.pool.opentimestamps.org, b.pool.opentimestamps.org, a.pool.eternitywall.com, ots.btc.catallaxy.com).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service info \u002F privacy:\u003C\u002Fstrong> https:\u002F\u002Fopentimestamps.org\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>RFC 3161 \u002F eIDAS timestamp authority\u003C\u002Fstrong> (opt-in, off by default) — if you instead set the provider to an RFC 3161 authority, the same one-way SHA-256 hash (no personal data) is sent to the authority URL \u003Cstrong>you\u003C\u002Fstrong> configure. This is a provider you choose and contract with directly (examples: a free Sectigo endpoint, or a national authority such as Aruba, InfoCert, D-Trust, Universign, FNMT, SwissSign); please review that provider’s own terms of service and privacy policy. No such call is made until you enable it.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Outbound webhook\u003C\u002Fstrong> (opt-in, off by default — Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Integrations) — if enabled, the plugin sends a signed POST to the endpoint URL \u003Cstrong>you\u003C\u002Fstrong> specify whenever a withdrawal is confirmed. The payload carries a verification hash and contract reference, never the consumer’s IP address.\u003C\u002Fp>\n\u003Cp>No other external services are used. The plugin does not load remote scripts, fonts or trackers on your site.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>The plugin records withdrawal declarations (name, identified contract, email, IP address, date and time) in an append-only, tamper-evident log on \u003Cstrong>your own server\u003C\u002Fstrong>, because Art. 54-bis requires this as legal evidence (GDPR Art. 6(1)(c)\u002F(f)). It generates a ready-to-paste privacy clause for your policy. Data is retained for a configurable period (10 years by default), and the uninstaller keeps the evidence log by default (legal hold) unless you opt to erase it.\u003C\u002Fp>\n\u003Cp>For the conditional Art. 59 exemptions, the plugin also stores the consumer’s checkout consent + acknowledgement (the agreed wording, a hash, the date\u002Ftime and — unless you turn it off — the IP) as evidence to prove the exemption is valid. The lawful basis is \u003Cstrong>legitimate interest\u003C\u002Fstrong> (GDPR Art. 6(1)(f); defence of legal claims), \u003Cstrong>not\u003C\u002Fstrong> GDPR consent. The IP lives only on the order (never in the immutable log) and is automatically anonymised once the retention period lapses. A second ready-to-paste privacy clause is generated for this processing.\u003C\u002Fp>\n","EU statutory withdrawal button (Art. 11a) for WooCommerce, FluentCart & EDD: two-step flow, durable-medium receipt, tamper-evident log.",100,501,0,"2026-07-02T21:42:00.000Z","7.0.2","5.8","8.1",[19,20,21,22,23],"fluentcart","gdpr","recesso","right-of-withdrawal","woocommerce","https:\u002F\u002Fwebwakeup.it\u002Fwwu-withdrawal-button\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwwu-withdrawal-button.1.4.0.zip",null,"2026-07-22T17:31:50.256Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":11,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"mredodos",1,30,94,"2026-08-28T19:51:36.700Z",[37,54,74,96,113],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":13,"downloaded":45,"rating":13,"num_ratings":13,"last_updated":46,"tested_up_to":15,"requires_at_least":47,"requires_php":48,"tags":49,"homepage":52,"download_link":53,"security_score":11,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"indiesoft-return-withdrawal-requests-woocommerce","IndieSoft Return and Withdrawal Requests for WooCommerce","1.2.0","IndieSoft","https:\u002F\u002Fprofiles.wordpress.org\u002Findiesoft\u002F","\u003Cp>IndieSoft Return and Withdrawal Requests for WooCommerce adds a scalable workflow for the right of withdrawal:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Endpoint in “My Account”.\u003C\u002Fli>\n\u003Cli>Explicit button on eligible orders.\u003C\u002Fli>\n\u003Cli>Button on order and thank-you pages when the order is eligible.\u003C\u002Fli>\n\u003Cli>Lookup for guest orders via order number and email.\u003C\u002Fli>\n\u003Cli>Configurable time window.\u003C\u002Fli>\n\u003Cli>Configurable eligible order statuses.\u003C\u002Fli>\n\u003Cli>Customizable refund reasons and methods.\u003C\u002Fli>\n\u003Cli>Mandatory confirmation of the intention to withdraw.\u003C\u002Fli>\n\u003Cli>Email receipt with declaration, date, and time of receipt.\u003C\u002Fli>\n\u003Cli>Request log in a dedicated table.\u003C\u002Fli>\n\u003Cli>Request status management from the back office.\u003C\u002Fli>\n\u003Cli>Email notifications to customers and administrators.\u003C\u002Fli>\n\u003Cli>Declared compatibility with HPOS.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Available shortcode: [indiesoft_rwrw]\u003C\u002Fp>\n","Configurable module to manage withdrawal and return requests in WooCommerce stores.",114,"2026-06-30T07:05:00.000Z","6.5","7.4",[20,21,50,51,23],"resi","withdrawal","https:\u002F\u002Fgithub.com\u002Findiesoft-webapp\u002Fwoocommerce-recesso","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Findiesoft-return-withdrawal-requests-woocommerce.1.2.0.zip",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":62,"downloaded":63,"rating":64,"num_ratings":65,"last_updated":66,"tested_up_to":15,"requires_at_least":67,"requires_php":48,"tags":68,"homepage":72,"download_link":73,"security_score":11,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"woo-additional-terms","Additional Terms for WooCommerce","1.7.2","MyPreview","https:\u002F\u002Fprofiles.wordpress.org\u002Fmypreview\u002F","\u003Cp>Additional Terms for WooCommerce helps store owners add an extra agreement checkbox to the WooCommerce checkout page. Use it for return policies, refund conditions, cancellation terms, privacy notices, age confirmations, delivery notices, warranty acknowledgements, payment method notices, or any other policy that customers should review before purchase.\u003C\u002Fp>\n\u003Cp>The plugin is designed to be simple to configure while still giving store owners control over how the terms appear during checkout.\u003C\u002Fp>\n\u003Ch4>What you can do with the free version\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Add an additional terms and conditions checkbox to WooCommerce checkout.\u003C\u002Fli>\n\u003Cli>Make the checkbox required or optional.\u003C\u002Fli>\n\u003Cli>Show a custom validation message when required terms are not accepted.\u003C\u002Fli>\n\u003Cli>Link the checkbox label to a selected terms page using the \u003Ccode>{{additional-terms}}\u003C\u002Fcode> smart tag.\u003C\u002Fli>\n\u003Cli>Display linked terms content in a modal, in a new tab, or directly above the checkbox.\u003C\u002Fli>\n\u003Cli>Enable or disable the checkbox without deleting the saved settings.\u003C\u002Fli>\n\u003Cli>Display the checkbox on the classic WooCommerce checkout shortcode.\u003C\u002Fli>\n\u003Cli>Add the dedicated Additional Terms block inside the WooCommerce Checkout Block.\u003C\u002Fli>\n\u003Cli>Save customer acceptance details in WooCommerce order notes.\u003C\u002Fli>\n\u003Cli>Use the plugin on multilingual stores with translation-ready strings and support for WPML and Polylang workflows.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Common use cases\u003C\u002Fh4>\n\u003Cp>Additional Terms for WooCommerce can be useful when your store needs customers to acknowledge specific policies before checkout, including:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Refund and cancellation policies.\u003C\u002Fli>\n\u003Cli>Subscription terms.\u003C\u002Fli>\n\u003Cli>Product warranties.\u003C\u002Fli>\n\u003Cli>Age-restricted product notices.\u003C\u002Fli>\n\u003Cli>Shipping delays or delivery conditions.\u003C\u002Fli>\n\u003Cli>Digital download terms.\u003C\u002Fli>\n\u003Cli>Liability waivers.\u003C\u002Fli>\n\u003Cli>Privacy and GDPR-related notices.\u003C\u002Fli>\n\u003Cli>Return policy exceptions.\u003C\u002Fli>\n\u003Cli>Special product or service conditions.\u003C\u002Fli>\n\u003Cli>Payment-method-specific terms, such as bank transfer instructions, cash on delivery notices, manual payment disclaimers, financing terms, or payment gateway requirements.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Built for classic and block-based checkout\u003C\u002Fh4>\n\u003Cp>The plugin works with both WooCommerce checkout approaches. On stores using the classic \u003Ccode>[woocommerce_checkout]\u003C\u002Fcode> shortcode, the checkbox can appear automatically near the WooCommerce terms and conditions area. On stores using the WooCommerce Checkout Block, you can place the Additional Terms block inside the checkout layout and move it to the preferred position.\u003C\u002Fp>\n\u003Ch4>Keep a record of accepted terms\u003C\u002Fh4>\n\u003Cp>When customers place an order, their additional terms acceptance is saved with the WooCommerce order. This gives store owners a clearer record of which checkout agreement was accepted during purchase and can help with internal review, customer support, and dispute prevention.\u003C\u002Fp>\n\u003Ch4>Upgrade to Additional Terms Pro\u003C\u002Fh4>\n\u003Cp>Need more advanced checkout agreements? Additional Terms Pro gives WooCommerce stores more flexibility, more control, and better record keeping for complex checkout policies.\u003C\u002Fp>\n\u003Cp>With Additional Terms Pro, you can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Create unlimited additional terms checkboxes for different policies, notices, waivers, and acknowledgements.\u003C\u002Fli>\n\u003Cli>Set default checkbox states for optional agreements.\u003C\u002Fli>\n\u003Cli>Display accepted additional terms directly inside WooCommerce order emails.\u003C\u002Fli>\n\u003Cli>Attach a PDF receipt of accepted terms to WooCommerce order emails.\u003C\u002Fli>\n\u003Cli>Show an acceptance summary on the WooCommerce order details screen.\u003C\u002Fli>\n\u003Cli>Use advanced conditional logic to show terms only when they are relevant.\u003C\u002Fli>\n\u003Cli>Display terms based on products, categories, tags, shipping locations, user roles, shipping classes, product types, payment gateways, weekdays, and WooCommerce Brands.\u003C\u002Fli>\n\u003Cli>Add payment-method-specific agreements for options such as bank transfer, cash on delivery, manual payment methods, financing, or custom gateways.\u003C\u002Fli>\n\u003Cli>Link checkboxes to content from a selected post type, not only standard WordPress pages.\u003C\u002Fli>\n\u003Cli>Use Hidden Cart Matching for custom checkout layouts where products may be hidden or modified by the theme or checkout builder.\u003C\u002Fli>\n\u003Cli>Export and import plugin settings when moving terms configuration between stores.\u003C\u002Fli>\n\u003Cli>Generate structured Terms and Conditions content using the guided Terms Generator.\u003C\u002Fli>\n\u003Cli>Receive premium updates and priority support through WooCommerce.com.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Additional Terms Pro is a strong fit for stores that need product-specific policies, payment gateway notices, subscription terms, regional notices, warranty acknowledgements, age confirmations, custom checkout agreements, or clearer documentation of what customers accepted during checkout.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fproducts\u002Fadditional-terms-pro\u002F\" rel=\"nofollow ugc\">Upgrade to Additional Terms Pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Important note\u003C\u002Fh4>\n\u003Cp>This plugin helps you present and record checkout agreements, but it does not provide legal advice. Always review your terms and policies carefully, and consult a qualified legal professional when needed.\u003C\u002Fp>\n","Improve your WooCommerce checkout process with an additional terms and conditions checkbox. Ask customers to review and accept important store policie &hellip;",2000,45015,70,15,"2026-06-08T12:47:00.000Z","5.9",[69,20,70,71,23],"checkout","terms-and-conditions","terms-of-service","https:\u002F\u002Fmypreview.one\u002Fwoo-additional-terms","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoo-additional-terms.1.7.2.zip",{"slug":75,"name":76,"version":77,"author":78,"author_profile":79,"description":80,"short_description":81,"active_installs":82,"downloaded":83,"rating":84,"num_ratings":85,"last_updated":86,"tested_up_to":87,"requires_at_least":88,"requires_php":89,"tags":90,"homepage":94,"download_link":95,"security_score":11,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"etracker","etracker analytics","2.7.7","etracker GmbH","https:\u002F\u002Fprofiles.wordpress.org\u002Fetrackerofficial\u002F","\u003Cp>The plugin is the perfect solution for seamlessly integrating powerful web analytics into your WordPress website or WooCommerce store with etracker analytics. With \u003Ca href=\"https:\u002F\u002Fwww.etracker.com\u002F?etcc_cmp=eA%20Plugin&etcc_med=Pluginstore&etcc_grp=wordpress&etcc_ctv=plugindescription\" rel=\"nofollow ugc\">etracker analytics\u003C\u002Fa>, you can achieve comprehensive data analyses without data loss, even if blocking add-ons or browser protection measures are activated. Thanks to data privacy-friendly processing in compliance with GDPR and TDDDG, outstanding data quality is achieved!\u003C\u002Fp>\n\u003Ch3>Functions of the plugin\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Integration of the tracking code via plugin:\u003C\u002Fstrong> Automatically record page views, scroll and download events, video playbacks and clicks on external links.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Optimized for WooCommerce:\u003C\u002Fstrong> In addition to the general tracking functions in WooCommerce stores, automatically receive e-commerce activities such as product views, items added to the shopping cart, removed items and orders.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Integrated tag and consent management:\u003C\u002Fstrong> For third-party tags, the integrated \u003Ca href=\"https:\u002F\u002Fwww.etracker.com\u002Fen\u002Ftag-manager\u002F?etcc_cmp=eA%20Plugin&etcc_med=Pluginstore&etcc_grp=wordpress&etcc_ctv=plugindescription\" rel=\"nofollow ugc\">etracker tag manager\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.etracker.com\u002Fen\u002Fconsent-manager\u002F?etcc_cmp=eA%20Plugin&etcc_med=Pluginstore&etcc_grp=wordpress&etcc_ctv=plugindescription\" rel=\"nofollow ugc\">etracker consent manager\u003C\u002Fa> is the comfortable \u003Cstrong>all-in-one solution\u003C\u002Fstrong> for managing consent easily as well as controlling it conveniently and in compliance with data protection regulations. Google Consent Mode is supported as standard for Google tags.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Easy setup\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Already have an etracker account?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Activate the plugin, enter your etracker account key and you’re ready to go!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Don’t have an etracker account yet?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Go to \u003Ca href=\"https:\u002F\u002Fwww.etracker.com\u002Fen\u002Fsignup\u002F\" rel=\"nofollow ugc\">etracker.com\u003C\u002Fa>, start your 30-day no-obligation trial and convince yourself of etracker analytics!\u003C\u002Fp>\n\u003Cp>\u003Cem>Optimize your website or online store with etracker analytics, the data protection-compliant web analysis without data loss made in Germany.\u003C\u002Fem>\u003C\u002Fp>\n","Consent-free, despite ad blockers and tracking prevention: Web analytics, tag and consent manager for best data quality, ad returns and conversions.",1000,38403,78,7,"2025-12-02T14:41:00.000Z","6.9.5","5.5","7.2",[91,92,20,93,23],"analytics","dsgvo","tracking","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fetracker","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fetracker.2.7.7.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":82,"downloaded":104,"rating":11,"num_ratings":105,"last_updated":106,"tested_up_to":15,"requires_at_least":107,"requires_php":48,"tags":108,"homepage":111,"download_link":112,"security_score":11,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"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","6.0",[109,110,20,51,23],"compliance","consumer-rights","https:\u002F\u002Fservicios.ayudawp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feu-withdrawal-compliance.2.1.0.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":82,"downloaded":121,"rating":11,"num_ratings":122,"last_updated":123,"tested_up_to":15,"requires_at_least":107,"requires_php":48,"tags":124,"homepage":128,"download_link":129,"security_score":11,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"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.",3342,8,"2026-07-13T05:11:00.000Z",[125,126,127,22,23],"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",{"error":131,"url":132,"statusCode":133,"statusMessage":134,"message":134},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwwu-withdrawal-button\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":136,"versions":137},2,[138,144],{"version":6,"download_url":25,"svn_tag_url":139,"released_at":26,"has_diff":140,"diff_files_changed":141,"diff_lines":26,"trac_diff_url":142,"vulnerabilities":143,"is_current":131},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwwu-withdrawal-button\u002Ftags\u002F1.4.0\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwwu-withdrawal-button%2Ftags%2F1.3.2&new_path=%2Fwwu-withdrawal-button%2Ftags%2F1.4.0",[],{"version":145,"download_url":146,"svn_tag_url":147,"released_at":26,"has_diff":140,"diff_files_changed":148,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":149,"is_current":140},"1.3.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwwu-withdrawal-button.1.3.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwwu-withdrawal-button\u002Ftags\u002F1.3.2\u002F",[],[]]