[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fmSuTWHMhb20SLmToGE2heiZrbe_Mx4ORY-R5lrsKm78":3,"$fsobB6aJWLqTHOUSTBXi40cQk7vaHTk05zlD8Jwax7Sg":120,"$fAHpE74eEv0NI3RE4-gQKBgE2w-sOlzUcP_B838v2YSY":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},"freezdom-withdrawal-requests","Freezdom Withdrawal Requests for WooCommerce","1.0.2","Freezdom","https:\u002F\u002Fprofiles.wordpress.org\u002Ffreezdom\u002F","\u003Cp>Freezdom Withdrawal Requests for WooCommerce is an independent plugin by Freezdom and is not affiliated with or endorsed by WooCommerce.\u003C\u002Fp>\n\u003Cp>Freezdom Withdrawal Requests for WooCommerce helps WooCommerce store owners manage customer withdrawal requests from one clear admin area.\u003C\u002Fp>\n\u003Cp>The plugin adds a secure withdrawal request flow for WooCommerce stores, including order validation, optional email verification, two-step customer confirmation, request tracking, administrator notifications and customer status emails.\u003C\u002Fp>\n\u003Cp>It is designed to work naturally inside WordPress and WooCommerce without changing WooCommerce order statuses. Withdrawal request statuses are kept separate from fulfilment, shipping, ERP and accounting workflows.\u003C\u002Fp>\n\u003Ch4>Main Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Withdrawal request form shortcode: [freezdom_withdrawal_form]\u003C\u002Fli>\n\u003Cli>Withdrawal request link shortcode: [freezdom_withdrawal_link]\u003C\u002Fli>\n\u003Cli>Optional floating withdrawal button\u003C\u002Fli>\n\u003Cli>Widget support for displaying the withdrawal form or withdrawal button\u002Flink\u003C\u002Fli>\n\u003Cli>Appearance > Menus integration for drag-and-drop menu placement\u003C\u002Fli>\n\u003Cli>WooCommerce order number and billing email validation\u003C\u002Fli>\n\u003Cli>Optional customer email verification before final submission\u003C\u002Fli>\n\u003Cli>Expiring verification links\u003C\u002Fli>\n\u003Cli>Two-step customer confirmation flow\u003C\u002Fli>\n\u003Cli>Honeypot and rate limiting protection\u003C\u002Fli>\n\u003Cli>Customer confirmation emails\u003C\u002Fli>\n\u003Cli>Administrator notification emails for new requests\u003C\u002Fli>\n\u003Cli>Optional customer emails for Under review, Accepted and Rejected statuses\u003C\u002Fli>\n\u003Cli>Request dashboard under WooCommerce > EU Withdrawal Requests\u003C\u002Fli>\n\u003Cli>Request status management: Pending, Under review, Accepted and Rejected\u003C\u002Fli>\n\u003Cli>Manual request creation by administrators\u003C\u002Fli>\n\u003Cli>Dashboard widget with request overview\u003C\u002Fli>\n\u003Cli>CSV export\u003C\u002Fli>\n\u003Cli>Search and filtering tools\u003C\u002Fli>\n\u003Cli>WPML compatible\u003C\u002Fli>\n\u003Cli>Polylang compatible\u003C\u002Fli>\n\u003Cli>WooCommerce HPOS compatibility declaration\u003C\u002Fli>\n\u003Cli>WordPress privacy exporter and eraser integration\u003C\u002Fli>\n\u003Cli>Privacy policy guide integration\u003C\u002Fli>\n\u003Cli>Optional uninstall cleanup setting\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>WooCommerce Integration\u003C\u002Fh4>\n\u003Cp>The plugin validates withdrawal requests against WooCommerce order data using the order number and billing email address.\u003C\u002Fp>\n\u003Cp>It does not change the WooCommerce order status. This avoids conflicts with shipping, fulfilment, ERP, accounting and stock management plugins.\u003C\u002Fp>\n\u003Ch4>Privacy and GDPR\u003C\u002Fh4>\n\u003Cp>The plugin stores the minimum data needed to manage withdrawal requests and includes WordPress privacy exporter and eraser support.\u003C\u002Fp>\n\u003Cp>A privacy policy guide entry is also added to help store owners describe how withdrawal request data is processed.\u003C\u002Fp>\n\u003Ch4>Multilingual Support\u003C\u002Fh4>\n\u003Cp>The plugin includes WPML and Polylang compatibility for translated withdrawal pages and link text.\u003C\u002Fp>\n\u003Ch4>Legal Notice\u003C\u002Fh4>\n\u003Cp>This plugin provides technical tools to help store owners manage withdrawal requests. It is not legal advice. Store owners should confirm their exact legal obligations with a qualified legal professional.\u003C\u002Fp>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Ch4>Withdrawal Form\u003C\u002Fh4>\n\u003Cp>[freezdom_withdrawal_form]\u003C\u002Fp>\n\u003Cp>Displays the full withdrawal request form and customer confirmation flow.\u003C\u002Fp>\n\u003Ch4>Withdrawal Link\u003C\u002Fh4>\n\u003Cp>[freezdom_withdrawal_link]\u003C\u002Fp>\n\u003Cp>Displays a link to the withdrawal request page.\u003C\u002Fp>\n","Manage EU withdrawal requests in WooCommerce with customer verification, request tracking, email notifications, GDPR tools and multilingual support.",0,95,"2026-06-25T10:37:00.000Z","7.0.2","6.0","7.0",[18,19,20,21,22],"compliance","eu","gdpr","withdrawal","woocommerce","https:\u002F\u002Ffreezdom.com\u002Feu-withdrawal-requests-for-woocommerce\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffreezdom-withdrawal-requests.1.0.2.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},"freezdom",1,30,94,"2026-08-28T20:39:04.224Z",[37,55,71,89,105],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":25,"num_ratings":47,"last_updated":48,"tested_up_to":14,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":53,"download_link":54,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"eu-order-withdrawal-button-for-woocommerce","EU Order Withdrawal Button for WooCommerce","2.3.2","vendidero","https:\u002F\u002Fprofiles.wordpress.org\u002Fvendidero\u002F","\u003Cp>EU Order Withdrawal Button for WooCommerce adds compliance with the \u003Ca href=\"https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdir\u002F2023\u002F2673\u002Foj\u002Feng\" rel=\"nofollow ugc\">EU directive 2023\u002F2673\u003C\u002Fa> to WooCommerce. With the help of this little plugin you may easily allow your customers to submit (partial) withdrawal requests to their orders.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Withdrawal request form\u003C\u002Fem> – Use a shortcode to embed a withdrawal request form which works both for guest orders and registered customers.\u003C\u002Fli>\n\u003Cli>\u003Cem>Manage withdrawals\u003C\u002Fem> – Easily manage withdrawals from your WooCommerce order page by either confirming or rejecting requests.\u003C\u002Fli>\n\u003Cli>\u003Cem>Send confirmation emails\u003C\u002Fem> – Automatically confirm receipt of the withdrawal by email including all required information.\u003C\u002Fli>\n\u003Cli>\u003Cem>Partial withdrawals\u003C\u002Fem> – Optionally allow customers to submit partial withdrawal requests.\u003C\u002Fli>\n\u003Cli>\u003Cem>GDPR ready\u003C\u002Fem> – Comes with privacy policy proposal, support for personal data export and erasure.\u003C\u002Fli>\n\u003Cli>\u003Cem>WPML compatibility\u003C\u002Fem> – Comes with built-in compatibility for multilingual shops using WPML.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Initial setup and withdrawal button placement\u003C\u002Fh4>\n\u003Cp>After installation, a new page (withdraw from contract) is created as a draft. This page includes the [eu_owb_order_withdrawal_request_form] shortcode to output the withdrawal form.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Review the page created and your settings under WooCommerce > Settings > Advanced > Withdrawals (In case you are using our plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce-germanized\u002F\" rel=\"ugc\">Germanized for WooCommerce\u003C\u002Fa> find your settings under WooCommerce > Settings > Germanized > General)\u003C\u002Fli>\n\u003Cli>Publish the page containing the withdrawal form shortcode\u003C\u002Fli>\n\u003Cli>Make sure that the withdrawal button is shown in your footer on shop-related pages\u003C\u002Fli>\n\u003Cli>Review the email templates provided to confirm the receipt, confirmation and rejection of withdrawals under WooCommerce > Settings > Emails\u003C\u002Fli>\n\u003Cli>Test the withdrawal procedure both as a guest and as a customer\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>If you don’t want the button to be injected automatically, disable the related setting and either use the shortcode [eu_owb_order_withdrawal_button] to output the button or manually create a link to your withdrawal page within your theme or pagebuilder.\u003C\u002Fp>\n\u003Ch4>Integrated with Shiptastic for WooCommerce\u003C\u002Fh4>\n\u003Cp>Use our plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fshiptastic-for-woocommerce\u002F\" rel=\"ugc\">Shiptastic for WooCommerce\u003C\u002Fa> to handle returns with ease. After confirming a withdrawal request, Shiptastic automatically adds a return shipment including all items of the original request. Provide your customer with all the information needed to return the goods to you. Use Shiptastic to exclude certain products from being returnable at all.\u003C\u002Fp>\n","This plugin helps to comply with the latest EU directive 2023\u002F2673 by embedding a withdrawal button within your WooCommerce store.",4000,16993,5,"2026-07-09T14:07:00.000Z","5.4","7.4",[52,18,19,21,22],"cancellation","https:\u002F\u002Fvendidero.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feu-order-withdrawal-button-for-woocommerce.2.3.2.zip",{"slug":56,"name":57,"version":58,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":63,"downloaded":64,"rating":25,"num_ratings":65,"last_updated":66,"tested_up_to":14,"requires_at_least":15,"requires_php":50,"tags":67,"homepage":69,"download_link":70,"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",[18,68,20,21,22],"consumer-rights","https:\u002F\u002Fservicios.ayudawp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feu-withdrawal-compliance.2.1.0.zip",{"slug":72,"name":73,"version":74,"author":75,"author_profile":76,"description":77,"short_description":78,"active_installs":63,"downloaded":79,"rating":25,"num_ratings":80,"last_updated":81,"tested_up_to":14,"requires_at_least":15,"requires_php":50,"tags":82,"homepage":87,"download_link":88,"security_score":25,"vuln_count":11,"unpatched_count":11,"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",[83,84,85,86,22],"eu-compliance","eu-directive","eu-withdrawal","right-of-withdrawal","https:\u002F\u002Fwww.wordpress.org\u002Fplugins\u002Fwt-eu-withdrawal-button","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwt-eu-withdrawal-button.1.0.7.zip",{"slug":90,"name":91,"version":92,"author":93,"author_profile":94,"description":95,"short_description":96,"active_installs":97,"downloaded":98,"rating":25,"num_ratings":32,"last_updated":99,"tested_up_to":100,"requires_at_least":101,"requires_php":50,"tags":102,"homepage":103,"download_link":104,"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","5.8",[68,84,20,21,22],"https:\u002F\u002Fonlinefotka.sk\u002Fodstupenie-od-zmluvy","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fodstupenie-od-zmluvy.2.6.1.zip",{"slug":106,"name":107,"version":108,"author":109,"author_profile":110,"description":111,"short_description":112,"active_installs":113,"downloaded":114,"rating":11,"num_ratings":11,"last_updated":115,"tested_up_to":14,"requires_at_least":15,"requires_php":50,"tags":116,"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",[19,20,117,21,22],"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\u002Ffreezdom-withdrawal-requests\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\u002Ffreezdom-withdrawal-requests\u002Ftags\u002F1.0.2\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ffreezdom-withdrawal-requests%2Ftags%2F1.0.1&new_path=%2Ffreezdom-withdrawal-requests%2Ftags%2F1.0.2",[],{"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.0.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffreezdom-withdrawal-requests.1.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ffreezdom-withdrawal-requests\u002Ftags\u002F1.0.1\u002F",[],[]]