[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fcvvLZT0evVzKoMt05_YudcjtFXQmGX8VCIWhD83i4nc":3,"$fXVWHpCkBxk9jrL77biYPc9mPwINb55uv4XUx7Tj6NnQ":120,"$f-AsIYWz3rLF9ZCC_f7Lp_BL2_htnkUjzRmkRmAs2Rwo":125},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":36,"analysis":26,"fingerprints":26},"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.",0,114,"2026-06-30T07:05:00.000Z","7.0.2","6.5","7.4",[18,19,20,21,22],"gdpr","recesso","resi","withdrawal","woocommerce","https:\u002F\u002Fgithub.com\u002Findiesoft-webapp\u002Fwoocommerce-recesso","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Findiesoft-return-withdrawal-requests-woocommerce.1.2.0.zip",100,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":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"indiesoft",1,30,94,"2026-08-28T20:47:24.441Z",[37,54,72,88,104],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":25,"downloaded":45,"rating":11,"num_ratings":11,"last_updated":46,"tested_up_to":14,"requires_at_least":47,"requires_php":48,"tags":49,"homepage":52,"download_link":53,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"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.",501,"2026-07-02T21:42:00.000Z","5.8","8.1",[50,18,19,51,22],"fluentcart","right-of-withdrawal","https:\u002F\u002Fwebwakeup.it\u002Fwwu-withdrawal-button\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwwu-withdrawal-button.1.4.0.zip",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":62,"downloaded":63,"rating":25,"num_ratings":64,"last_updated":65,"tested_up_to":14,"requires_at_least":66,"requires_php":16,"tags":67,"homepage":70,"download_link":71,"security_score":25,"vuln_count":11,"unpatched_count":11,"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.",1000,5163,14,"2026-07-17T22:30:00.000Z","6.0",[68,69,18,21,22],"compliance","consumer-rights","https:\u002F\u002Fservicios.ayudawp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feu-withdrawal-compliance.2.1.0.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":80,"downloaded":81,"rating":25,"num_ratings":32,"last_updated":82,"tested_up_to":83,"requires_at_least":47,"requires_php":16,"tags":84,"homepage":86,"download_link":87,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"odstupenie-od-zmluvy","Spotrebiteľské práva pre WooCommerce","2.6.1","onlinefotka","https:\u002F\u002Fprofiles.wordpress.org\u002Fonlinefotka\u002F","\u003Ch4>🇸🇰 Slovenský popis\u003C\u002Fh4>\n\u003Cp>Tento plugin pridáva do vášho WooCommerce e-shopu \u003Cstrong>online formuláre na odstúpenie od zmluvy a reklamácie\u003C\u002Fstrong>, plne v súlade s európskou Smernicou EÚ 2023\u002F2673 a slovenským zákonom č. 108\u002F2024 Z. z. o ochrane spotrebiteľa.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Pre koho je to určené:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Pre slovenských prevádzkovateľov WooCommerce e-shopov, ktorí potrebujú:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Splniť zákonnú povinnosť\u003C\u002Fstrong> podľa EÚ smernice 2023\u002F2673 (účinná od 19. 6. 2026), ktorá vyžaduje aby každý e-shop mal funkciu „Odstúpiť od zmluvy tu” priamo na webe (nie len PDF na stiahnutie).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Zjednodušiť proces reklamácií\u003C\u002Fstrong> — zákazník vyplní reklamáciu online, nemusí tlačiť papierový formulár, môže priložiť fotografie vady.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mať poriadok v reklamáciách\u003C\u002Fstrong> — všetky odoslané reklamácie sa zhromaždia v administračnom rozhraní, kde môžete vyplniť reklamačný protokol, sledovať stav a vytlačiť oficiálny dokument.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Hlavné funkcie:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Odstúpenie od zmluvy\u003C\u002Fstrong> — formulár cez shortcode \u003Ccode>[withdrawal_form]\u003C\u002Fcode>, tlačidlo „Odstúpiť od zmluvy tu” pri každej objednávke v Mojom účte, automatická kontrola 14-dňovej lehoty (po vypršaní sa tlačidlo skryje), HTML potvrdenie s presným dátumom a časom odoslania (zákonný dôkaz na trvalom nosiči).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reklamácie\u003C\u002Fstrong> — kompletný online reklamačný formulár cez shortcode \u003Ccode>[complaint_form]\u003C\u002Fcode> (alias \u003Ccode>[reklamacia]\u003C\u002Fcode>), všetky polia zo štandardného slovenského papierového formulára: meno\u002Ffirma, telefón, e-mail, IBAN, výrobca, model, výrobné číslo, dátum predaja, číslo objednávky\u002Ffaktúry, popis vady. Voliteľné nahrávanie fotografií vady (drag & drop, JPG\u002FPNG\u002FWEBP\u002FHEIC, do 5 MB).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reklamačný protokol\u003C\u002Fstrong> — admin vyplní rozhodnutie (výmena\u002Fvrátenie ceny\u002Fzamietnutie), dátumy, IBAN na vrátenie. Vytlačiteľný A4 protokol (browser-natívne uloženie do PDF), pripravený na archiváciu.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>30-dňová zákonná lehota\u003C\u002Fstrong> — plugin posiela 5 dní pred uplynutím automatickú pripomienku adminovi (cez WP Cron). Žiadna pokuta od ÚZP za zameškané reklamácie.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Údaje predávajúceho\u003C\u002Fstrong> — vyplníte IČO, DIČ, IČ DPH a adresu raz, zobrazuje sa v hlavičke formulárov aj na tlačenom protokole. Berie sa primárne z WooCommerce \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Nastavenia \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Všeobecné, voliteľný override.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Plne preložené do slovenčiny\u003C\u002Fstrong> — formuláre aj admin rozhranie.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Čo plugin NEROBÍ:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatické refundy ani zmenu stavu objednávky vo WooCommerce\u003C\u002Fli>\n\u003Cli>Generovanie dobropisov alebo vratových štítkov\u003C\u002Fli>\n\u003Cli>Napojenie na dopravcov\u003C\u002Fli>\n\u003Cli>Výnimky z práva na odstúpenie (digitálny obsah, hygienický tovar atď.)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Tieto kroky rieši prevádzkovateľ manuálne podľa svojich obchodných podmienok.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Inštalácia v 3 krokoch:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Aktivujte plugin\u003C\u002Fli>\n\u003Cli>Vytvorte 2 stránky a vložte do nich shortcode \u003Ccode>[withdrawal_form]\u003C\u002Fcode> a \u003Ccode>[complaint_form]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>V \u003Cem>Spotrebiteľské práva \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Nastavenia\u003C\u002Fem> zadajte URL týchto stránok + vyplňte IČO\u002FDIČ ak ste firma\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>🇬🇧 English description\u003C\u002Fh4>\n\u003Cp>This plugin adds online forms for both \u003Cstrong>withdrawal from contract\u003C\u002Fstrong> and \u003Cstrong>complaints (reklamácie)\u003C\u002Fstrong> to your WooCommerce store, fully compliant with EU Directive 2023\u002F2673 and Slovak Act No. 108\u002F2024 Coll. on consumer protection.\u003C\u002Fp>\n\u003Ch4>Withdrawal from contract\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Shortcode \u003Ccode>[withdrawal_form]\u003C\u002Fcode> — embeddable on any page\u003C\u002Fli>\n\u003Cli>“Withdraw from contract here” button on every order in My Account (hides after 14 days)\u003C\u002Fli>\n\u003Cli>Automatic 14-day withdrawal-period check — visual and server-side blocking after expiry\u003C\u002Fli>\n\u003Cli>Automatic form pre-fill for logged-in customers\u003C\u002Fli>\n\u003Cli>Order ownership verification: e-mail or postcode for guest checkouts\u003C\u002Fli>\n\u003Cli>HTML confirmation e-mail with submission date and time (legal proof on a durable medium)\u003C\u002Fli>\n\u003Cli>HTML notification e-mail to the shop owner — supports multiple recipients (comma-separated)\u003C\u002Fli>\n\u003Cli>Rate limiting — max 10 attempts per hour per IP (admins bypass)\u003C\u002Fli>\n\u003Cli>Legally exact button wording per Articles 1 and 3 of the directive\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Complaints (reklamácie)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Shortcode \u003Ccode>[complaint_form]\u003C\u002Fcode> (alias \u003Ccode>[reklamacia]\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>All fields matching the standard Slovak complaint form: buyer details, IBAN, brand, model, serial number, sale date, order number, invoice, defect description\u003C\u002Fli>\n\u003Cli>Brand and model are optional — focus is on the defect description\u003C\u002Fli>\n\u003Cli>Separate “Order number” field — auto-filled from order dropdown for logged-in customers, manual text input for guests\u003C\u002Fli>\n\u003Cli>Optional photo upload with drag & drop (up to 5 photos by default, configurable)\u003C\u002Fli>\n\u003Cli>Secure photo handling — real MIME-type verification (JPG, PNG, WEBP, HEIC), .htaccess protection, random filename hash, realpath safety check\u003C\u002Fli>\n\u003Cli>Auto-fill from order selection for logged-in customers (brand, model, sale date, order number, invoice number)\u003C\u002Fli>\n\u003Cli>Admin complaint list with filter (by status), search (name, e-mail, invoice, order number, ID) and pagination\u003C\u002Fli>\n\u003Cli>Admin “Reklamačný protokol” form — fill resolution (exchange \u002F refund \u002F rejected), expert assessment contact, dates\u003C\u002Fli>\n\u003Cli>Status pipeline: New \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> In progress \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Resolved \u002F Rejected (coloured badges)\u003C\u002Fli>\n\u003Cli>“Date resolved” is required when closing a complaint (auto-fills today if empty)\u003C\u002Fli>\n\u003Cli>Internal notes field (private) — visible only to admins, NOT included in print or customer e-mails\u003C\u002Fli>\n\u003Cli>Delete action with confirmation and disk cleanup of attached photos\u003C\u002Fli>\n\u003Cli>Optional status update e-mail to customer\u003C\u002Fli>\n\u003Cli>Printable A4 view — buyer-filled form + protocol on one page (browser-native print to PDF)\u003C\u002Fli>\n\u003Cli>Seller info settings — IČO, DIČ, IČ DPH, correspondence address (hybrid: WC Store Address + plugin overrides)\u003C\u002Fli>\n\u003Cli>WP Cron daily reminder e-mail to admin 5 days before the 30-day legal deadline expires (each complaint reminded only once)\u003C\u002Fli>\n\u003Cli>30-day legal deadline reminder per Act No. 108\u002F2024 Coll.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Common features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Dedicated top-level admin menu \u003Cstrong>“Spotrebiteľské práva”\u003C\u002Fstrong> (Consumer Rights) with 3 clean submenus: Withdrawals from contract, Complaints, Settings\u003C\u002Fli>\n\u003Cli>Database log of all submissions (separate tables for withdrawals and complaints)\u003C\u002Fli>\n\u003Cli>Full multilingual support (EN, SK, CS, HU, DE, PL) — auto-detected from WordPress Site Language\u003C\u002Fli>\n\u003Cli>HPOS and legacy WooCommerce compatibility\u003C\u002Fli>\n\u003Cli>WordPress Privacy Policy integration in GDPR consent\u003C\u002Fli>\n\u003Cli>Automatic DB schema upgrades — new columns are added on plugin load if missing (no manual SQL needed)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>WooCommerce compatibility\u003C\u002Fh4>\n\u003Cp>The plugin works with both order-storage systems:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>HPOS (High Performance Order Storage) — new \u003Ccode>wc_orders\u003C\u002Fcode> tables, WooCommerce 7.1+\u003C\u002Fli>\n\u003Cli>Legacy — classic storage via WordPress posts\u002Fpostmeta\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Switching is fully automatic. HPOS compatibility is declared via \u003Ccode>FeaturesUtil\u003C\u002Fcode> — the plugin shows a green compatibility badge in WooCommerce > Settings > Advanced.\u003C\u002Fp>\n\u003Ch4>Legislation\u003C\u002Fh4>\n\u003Cp>The plugin is designed in compliance with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>EU Directive 2023\u002F2673 (effective 19 June 2026)\u003C\u002Fli>\n\u003Cli>Slovak Act No. 108\u002F2024 Coll. on consumer protection (replaced Act No. 102\u002F2014 Coll. effective 1 July 2024)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What the plugin does NOT do\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Exceptions from the right of withdrawal (digital content, hygiene goods, etc.)\u003C\u002Fli>\n\u003Cli>Automatic refunds or order status changes in WooCommerce\u003C\u002Fli>\n\u003Cli>Generating credit notes or return labels\u003C\u002Fli>\n\u003Cli>Carrier integration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>These steps are handled by the shop owner manually according to their terms and conditions.\u003C\u002Fp>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Withdrawal from contract:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Create a page and insert the shortcode \u003Ccode>[withdrawal_form]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>In \u003Cstrong>Consumer Rights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong>, enter the URL of that page\u003C\u002Fli>\n\u003Cli>Add a link to that page in your site footer\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Complaints (reklamácie):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Create a separate page and insert the shortcode \u003Ccode>[complaint_form]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>In \u003Cstrong>Consumer Rights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong>, enter the URL of that page\u003C\u002Fli>\n\u003Cli>Fill in the Seller info section (IČO\u002FDIČ if applicable) — these details appear on the printed protocol\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Withdrawal link in WooCommerce emails (YayMail \u002F email customizers):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Use the \u003Ccode>[withdrawal_link]\u003C\u002Fcode> shortcode inside any WooCommerce email template (YayMail, Kadence Emails, Email Customizer for WooCommerce, etc.) to insert a pre-filled link to the withdrawal form. The link automatically includes the correct order key so the customer lands on the form with their order pre-filled.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[withdrawal_link] — inserts a link with the default label \"Withdraw from contract\"\n[withdrawal_link label=\"Cancel order\"] — custom link text\n[withdrawal_link label=\"Withdraw\" class=\"btn btn-primary\"] — with CSS class(es) on the `\u003Ca>` tag\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The shortcode only works inside WooCommerce transactional emails (e.g. Order Completed). It reads the current order from the email context automatically. Outside of an email context it returns an empty string. The withdrawal form page URL must be configured in \u003Cstrong>Consumer Rights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong>.\u003C\u002Fp>\n","Withdrawal-from-contract & complaint (reklamácia) forms for WooCommerce. EU Directive 2023\u002F2673 + SK Act 108\u002F2024 ready.",200,1717,"2026-07-09T06:33:00.000Z","7.1",[69,85,18,21,22],"eu-directive","https:\u002F\u002Fonlinefotka.sk\u002Fodstupenie-od-zmluvy","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fodstupenie-od-zmluvy.2.6.1.zip",{"slug":89,"name":90,"version":91,"author":92,"author_profile":93,"description":94,"short_description":95,"active_installs":96,"downloaded":97,"rating":11,"num_ratings":11,"last_updated":98,"tested_up_to":14,"requires_at_least":99,"requires_php":16,"tags":100,"homepage":102,"download_link":103,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"sulado-odstupenie-a-reklamacie-for-woocommerce","Sulado Odstúpenie a reklamácie for WooCommerce","0.12.1","Tomáš Martinčok","https:\u002F\u002Fprofiles.wordpress.org\u002Ftomarco\u002F","\u003Cp>\u003Cstrong>From 19 June 2026, Slovak e-shops must offer consumers an online way to withdraw from a contract\u003C\u002Fstrong> (§ 20a of Act No. 108\u002F2024 Coll. on consumer protection). This plugin adds that statutory function to your WooCommerce store in one click — and handles the second everyday consumer-rights flow as well: online warranty claims (reklamácie) under the defect-liability rules of the Civil Code (Act No. 40\u002F1964 Coll.), with the claim handled per Act No. 108\u002F2024 Coll.\u003C\u002Fp>\n\u003Cp>Activate the plugin and it sets itself up: the two front-end form pages are created and configured automatically, a discreet footer link makes them reachable from every page, and customers can also start from My Account. Every submission gives you a structured record in admin, the customer a confirmation e-mail (proof on a durable medium), and both sides a printable PDF protocol.\u003C\u002Fp>\n\u003Ch4>For your customers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Contract-withdrawal form with the exact statutory “Confirm withdrawal from contract” button and an automatic 14-day period check.\u003C\u002Fli>\n\u003Cli>Warranty-claim form with product details (brand, model, serial number, invoice) and secure photo upload (real MIME validation, incl. HEIC from iPhones).\u003C\u002Fli>\n\u003Cli>Works for guests too — order ownership is verified by the order e-mail or postcode; logged-in customers simply pick their order from a dropdown.\u003C\u002Fli>\n\u003Cli>My Account “Returns & claims” tab listing eligible orders with one-click actions and a per-order countdown of the days left to withdraw and to file a claim.\u003C\u002Fli>\n\u003Cli>Live deadline banner on the withdrawal form (green \u002F amber \u002F red) with a days-remaining counter.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>For the store owner\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Statutory deadline tracking out of the box: the 14-day refund deadline for withdrawals and the 30-day handling deadline for claims, with coloured countdowns and a daily e-mail reminder before they expire.\u003C\u002Fli>\n\u003Cli>Status workflows: withdrawals (New \u002F In progress \u002F Completed) and warranty claims (New \u002F In progress \u002F Resolved \u002F Rejected) with the method of handling (repair, replacement, refund, price reduction, rejection).\u003C\u002Fli>\n\u003Cli>Native admin lists under the WooCommerce menu: status filter views with counts, sortable columns, bulk actions, search (incl. invoice number), and open-record badges in the menu.\u003C\u002Fli>\n\u003Cli>Full order integration: “Consumer rights” meta box and badge column on orders, private order notes, HPOS and legacy storage.\u003C\u002Fli>\n\u003Cli>Server-side PDF protocol (claim number RK-YYYY-NNNN, seller details, statutory notice) rendered locally with full Slovak diacritics — no external service, no data leaves your site.\u003C\u002Fli>\n\u003Cli>Customer and operator e-mails as native WooCommerce e-mail classes (template overrides, plain-text versions, defect-photo thumbnails for the operator).\u003C\u002Fli>\n\u003Cli>Dashboard widget with new \u002F in-progress \u002F near-deadline counts; silent anti-spam (honeypot + time-trap — no CAPTCHA to annoy customers).\u003C\u002Fli>\n\u003Cli>Settings live natively in WooCommerce > Settings > Súlad e-shopu — no extra top-level menu.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compliance & privacy\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>GDPR-ready: integrates with the WordPress personal-data export and erase tools (uploaded photos included), plus an optional data-retention auto-delete.\u003C\u002Fli>\n\u003Cli>Statutory wording and deadlines follow Slovak law: withdrawal under § 20a of Act No. 108\u002F2024 Coll., defect liability (24 months) under the Civil Code, 30-day claim handling under Act No. 108\u002F2024 Coll.\u003C\u002Fli>\n\u003Cli>The source language is English; UI translations are shipped for Slovak, Czech, German, Polish and Hungarian.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What the plugin does NOT do\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Automatic refunds or order status changes — those decisions stay fully in your hands.\u003C\u002Fli>\n\u003Cli>Editing your terms and conditions or providing legal advice (that remains with you and your lawyer).\u003C\u002Fli>\n\u003C\u002Ful>\n","Slovak-law online contract withdrawal (§ 20a, required from 19 June 2026) and warranty claims for WooCommerce. PDF protocols, GDPR, HPOS.",60,363,"2026-06-23T14:04:00.000Z","6.2",[69,18,101,21,22],"warranty-claim","https:\u002F\u002Ftomarco.sk\u002Fsulado","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsulado-odstupenie-a-reklamacie-for-woocommerce.0.12.1.zip",{"slug":105,"name":106,"version":107,"author":108,"author_profile":109,"description":110,"short_description":111,"active_installs":112,"downloaded":113,"rating":11,"num_ratings":11,"last_updated":114,"tested_up_to":14,"requires_at_least":66,"requires_php":16,"tags":115,"homepage":118,"download_link":119,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"purchase-contract-withdrawal-button-for-woocommerce","Purchase Contract Withdrawal Button for WooCommerce","1.3.3","jakubkasparek","https:\u002F\u002Fprofiles.wordpress.org\u002Fjakubkasparek\u002F","\u003Cp>Purchase Contract Withdrawal Button for WooCommerce adds a clearly-labeled “Withdraw from purchase contract” button to each customer’s order detail page in WooCommerce My Account. It implements the two-step submission process required by EU consumer law: the customer clicks the button, reviews their order details, optionally provides a refund bank account and reason, and then explicitly confirms.\u003C\u002Fp>\n\u003Cp>After submission:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The order is moved to a configurable status (default: On hold)\u003C\u002Fli>\n\u003Cli>A note is added to the order with the customer’s reason and refund account\u003C\u002Fli>\n\u003Cli>The customer receives a confirmation email\u003C\u002Fli>\n\u003Cli>The store administrator receives a notification email with all submission details\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Both emails are registered as standard WooCommerce email classes and can be customized in \u003Cstrong>WooCommerce \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Emails\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch4>Legal context\u003C\u002Fh4>\n\u003Cp>This plugin is designed to help merchants comply with EU Directive 2023\u002F2673, which requires online merchants to provide consumers with a direct online function to withdraw from a contract — the same way they could enter into it. In the Czech Republic, this obligation enters into force on \u003Cstrong>19 June 2026\u003C\u002Fstrong> under § 1830a of the Civil Code (the so-called “button amendment 2.0”). Similar transposition is required across all EU member states.\u003C\u002Fp>\n\u003Cp>The plugin is not legal advice. Merchants remain responsible for ensuring their full implementation (including terms and conditions, refund processing, and goods return) complies with applicable law.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Two-step submission\u003C\u002Fstrong> — button click \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> form with details \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> explicit confirmation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Guest shortcode\u003C\u002Fstrong> — optional \u003Ccode>[pcwb_withdrawal_form]\u003C\u002Fcode> for non-logged-in customers (order number + billing email lookup, rate-limited)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable cooling-off period\u003C\u002Fstrong> — default 14 days, adjustable per store\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Date of delivery meta box\u003C\u002Fstrong> — admin can record when the goods were received; the cooling-off period then runs from that date (legally correct under EU law)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable eligible statuses\u003C\u002Fstrong> — choose which order statuses show the button\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable post-submission status\u003C\u002Fstrong> — typically On hold or Processing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce email integration\u003C\u002Fstrong> — customer + admin emails as native WC_Email classes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin overview\u003C\u002Fstrong> — dedicated “Withdrawals” screen under WooCommerce: filter by pending\u002Fresolved, search, CSV export, bulk “Mark as resolved”\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Order actions\u003C\u002Fstrong> — admins can submit a withdrawal on behalf of the customer (e.g. phone request) and mark requests resolved from the order edit screen\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Translatable\u003C\u002Fstrong> — full text domain, .pot included, all 24 official EU languages bundled (Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Theme-overridable templates\u003C\u002Fstrong> — copy \u003Ccode>templates\u002Fwithdrawal-form.php\u003C\u002Fcode> or \u003Ccode>templates\u002Fguest-lookup.php\u003C\u002Fcode> into your theme to customize\u003C\u002Fli>\n\u003Cli>\u003Cstrong>HPOS-compatible\u003C\u002Fstrong> — works with WooCommerce’s High-Performance Order Storage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Filters and actions\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>pcwb_eligible_statuses\u003C\u002Fcode> — array of statuses where the button is shown\u003C\u002Fli>\n\u003Cli>\u003Ccode>pcwb_period_days\u003C\u002Fcode> — cooling-off period override\u003C\u002Fli>\n\u003Cli>\u003Ccode>pcwb_period_reference_date\u003C\u002Fcode> ($date, $order) — override the cooling-off reference date\u003C\u002Fli>\n\u003Cli>\u003Ccode>pcwb_new_status\u003C\u002Fcode> — order status applied after submission\u003C\u002Fli>\n\u003Cli>\u003Ccode>pcwb_admin_recipient\u003C\u002Fcode> — admin email recipient override\u003C\u002Fli>\n\u003Cli>\u003Ccode>pcwb_after_submit\u003C\u002Fcode> ($order, $reason, $account, $source) — fires after a successful submission (source = customer|guest|admin)\u003C\u002Fli>\n\u003Cli>\u003Ccode>pcwb_after_resolve\u003C\u002Fcode> ($order, $resolved_by_user_id) — fires when an admin marks a withdrawal resolved\u003C\u002Fli>\n\u003C\u002Ful>\n","Adds a withdrawal button to WooCommerce My Account orders. Two-step submission with nonce, configurable cooling-off, automated emails.",40,376,"2026-06-19T05:24:00.000Z",[116,18,117,21,22],"eu","refund","https:\u002F\u002Fgithub.com\u002Fkasparek-net\u002Fpurchase-contract-withdrawal-button-for-woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpurchase-contract-withdrawal-button-for-woocommerce.1.3.3.zip",{"error":121,"url":122,"statusCode":123,"statusMessage":124,"message":124},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Findiesoft-return-withdrawal-requests-woocommerce\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":126,"versions":127},2,[128,134],{"version":6,"download_url":24,"svn_tag_url":129,"released_at":26,"has_diff":130,"diff_files_changed":131,"diff_lines":26,"trac_diff_url":132,"vulnerabilities":133,"is_current":121},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Findiesoft-return-withdrawal-requests-woocommerce\u002Ftags\u002F1.2.0\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Findiesoft-return-withdrawal-requests-woocommerce%2Ftags%2F1.1.0&new_path=%2Findiesoft-return-withdrawal-requests-woocommerce%2Ftags%2F1.2.0",[],{"version":135,"download_url":136,"svn_tag_url":137,"released_at":26,"has_diff":130,"diff_files_changed":138,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":139,"is_current":130},"1.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Findiesoft-return-withdrawal-requests-woocommerce.1.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Findiesoft-return-withdrawal-requests-woocommerce\u002Ftags\u002F1.1.0\u002F",[],[]]