Cookiefy GDPR Compliance
Cookiefy provides enterprise-grade GDPR compliance for WordPress websites through an intelligent cookie consent management system. The plugin connects to the Cookiefy service to automatically detect, classify, and manage cookies while providing visitors with proper consent options. IMPORTANT: This plugin requires connection to external Cookiefy services to function. Please review the “External Services” section below for complete details on data transmission and privacy implications. Key Features Automatic Cookie Detection – Advanced AI-powered scanning detects all cookies on your website Intelligent Classification – Automatically categorizes cookies (Necessary, Analytics, Marketing, Preferences, Unclassified) Multiple Core Modes – Choose between Standard, Lenient, or Strict blocking based on your needs Premium Banner Themes – Professional designs including Comprehensive and Compact Modern styles Real-time Updates – Cookie settings sync instantly across your website WordPress Integration – Full AJAX support with proper nonce security Custom Configuration – Advanced JSON configuration for power users Performance Optimized – CDN delivery with script preloading for fast load times Core Modes Standard Mode (Recommended) * Balanced GDPR compliance with optimized performance * Blocks cookies and essential tracking scripts * Maintains good site compatibility * Best for most WordPress websites Lenient Mode (Lightweight) * Minimal cookie blocking for maximum compatibility * Only blocks cookie writes – scripts load normally * Best page performance with reduced privacy protection * Ideal for complex JavaScript applications or performance-critical sites Strict Mode (Advanced Users Only) * Maximum GDPR compliance with comprehensive blocking * Blocks scripts, DOM modifications, network requests, and localStorage * May cause website functionality issues * Only recommended for advanced users who can handle potential breakage Service Integration This plugin connects to the Cookiefy external service (https://cookiefy.app) to: * Retrieve cookie classification data for your domain * Access banner configuration and translations * Synchronize consent preferences (optional) * Provide compliance reporting and analytics You must create an account at Cookiefy to obtain a Domain ID for the plugin to function. The service processes cookie data according to its privacy policy. Banner Themes Comprehensive (Recommended) – Feature-rich banner with detailed cookie information and customization options Compact Modern – Clean, minimal design optimized for mobile and desktop WordPress Features AJAX Integration – Seamless consent handling without page reloads Security First – Proper nonce verification on all AJAX requests Caching Compatible – Works with all major WordPress caching plugins Admin Integration – Full WordPress admin interface with live status updates Consent Logging – Optional compliance logging for audit purposes External Services REQUIRED EXTERNAL SERVICE DISCLOSURE This plugin relies on external services provided by Cookiefy to function. By installing and activating this plugin, you acknowledge that your website will connect to and transmit data to third-party services. Primary Service: Cookiefy Cookie Management Platform Service Provider: Cookiefy (cookiefy.app) Service Purpose: Cookie consent management, cookie classification, and GDPR compliance functionality What data is sent: * Your website’s domain name (for service authentication and configuration) * User consent preferences and timestamps (when users interact with the consent banner) * Basic website analytics data (page views, consent rates, banner interactions) * Referrer information and page URLs where consent events occur When data is sent: * During plugin initialization (domain verification and configuration retrieval) * When the consent banner loads on your website * When users interact with the consent banner (accept, reject, customize) * When cookies are detected and require classification * During banner configuration updates in the admin panel Service endpoints used: * https://api.cookiefy.app/api/cdn-config/ – Configuration and cookie classification data * https://api.cookiefy.app/api/cookie-db – Cookie classification database * https://api.cookiefy.app/api/report-unknown-cookie – Unknown cookie reporting Legal documentation: * Terms of Service: https://cookiefy.app/terms-of-service * Privacy Policy: https://cookiefy.app/privacy-policy CDN Service: Cookiefy Content Delivery Network Service Provider: Cookiefy CDN (cdn.cookiefy.app) Service Purpose: Fast, reliable delivery of consent banner scripts and assets, powered by cloudflare. What data is sent: * HTTP requests for JavaScript files and assets * Standard web server logs (IP address, user agent, referrer) * Your website’s domain name (in request headers) When data is sent: * Every time a visitor loads a page on your website (to fetch banner scripts) * During initial plugin setup and configuration CDN endpoints used: * https://cdn.cookiefy.app/wp-cookiefy-core.min.js – Core cookie blocking, and GDPR compliance functionality * https://cdn.cookiefy.app/wp-cookiefy-ui.min.js – Standard banner interface * https://cdn.cookiefy.app/wp-compact-cookiefy-ui-modern.min.js – Compact banner interface Legal documentation: * Same as primary service (Cookiefy terms and privacy policy apply) Data Processing Legal Basis Legitimate Interest: Cookie classification and service delivery Contractual Necessity: Providing the cookie consent management service User Consent: Analytics and reporting features (where applicable) Data Retention and Geographic Processing Configuration data: Retained for the duration of active service subscription Analytics data: Retained for up to 24 months for reporting purposes User consent records: Retained according to legal requirements (typically 3 years) Processing locations: European Union and United States data centers Your Control and User Rights Users can request data deletion through the Cookiefy dashboard You can disable analytics collection in the plugin settings The service complies with GDPR, CCPA, and other privacy regulations You can export your consent data through the Cookiefy dashboard Alternative Solutions If you prefer not to use external services, consider: * Self-hosted cookie consent solutions * WordPress-only cookie plugins (with limited functionality) * Custom development for your specific requirements By using this plugin, you acknowledge that: 1. Your website will connect to and transmit data to Cookiefy services 2. You have reviewed and accept Cookiefy’s terms of service and privacy policy 3. You understand the data transmission requirements for the service to function 4. You will inform your website visitors about these external connections as required by law Support and Documentation Documentation: https://cookiefy.app/en/docs/ Support Center: https://cookiefy.app/contact Service Website: https://cookiefy.app This plugin requires a Domain ID from your Cookiefy account. Sign up for a free trial to get started with enterprise-grade cookie compliance. Privacy and External Services This plugin integrates with the Cookiefy service (cookiefy.app) to provide cookie management functionality. When active, the plugin: Connects to Cookiefy CDN servers to load optimized scripts Retrieves cookie classification data and banner configurations May synchronize consent preferences with the service (configurable) Processes Domain ID for service authentication Data Handling: * No personal data is transmitted without explicit user consent * Cookie detection and classification occurs through the external service * Consent data can be stored locally or optionally synchronized * All data transmission uses secure HTTPS connections Required External Connections: * https://cdn.cookiefy.app/ – For loading optimized banner and core scripts * https://cookiefy.app/ – For configuration and classification data The plugin respects user privacy and only processes data necessary for GDPR compliance functionality. Please review Cookiefy’s privacy policy at their website for complete details on data handling practices. Technical Requirements WordPress 5.0 or higher PHP 7.4 or higher HTTPS recommended for secure cookie handling Domain ID from Cookiefy account JavaScript enabled on visitor browsers Customisation beyond It is possible to have a completely custom banner with the blocking script, for more information on how to achieve this, contact support@cookiefy.app
EU Withdrawal Compliance
From June 19, 2026, EU Directive 2023/2673 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 complete toolkit every EU store needs to comply — and a few things competitors don’t offer at any price. The plugin helps you implement the right of withdrawal requirements of Directive 2011/83/EU on consumer rights, as amended by Directive (EU) 2019/2161 (the Omnibus Directive). Only this plugin in the directory ships, all of it, for free Two-step confirmation function (Art. 11a(3)) — 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. Complete durable-medium acknowledgement of receipt (Art. 11a(4)): 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 verifiable SHA-256 receipt hash as tamper-evident proof — recomputable from the stored fields if a dispute arises. Annex I.B model withdrawal form (Directive 2011/83/EU) 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). Double-consent checkboxes at the WooCommerce checkout for the two consents the directive expects to apply specific exceptions: Mandatory consent for digital content (Art. 16(m)) — blocks the place-order step until accepted. Optional consent for services started within the 14-day window (Art. 14(4)(a)) — enables pro-rated billing if the customer later withdraws. Every consent is persisted on the order with the exact text shown, accepted/declined state, timestamp, IP and user agent — durable proof in case of dispute. Single “Withdrawal status” dropdown per product and per category 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. Configurable public notice on excluded products, rendered between price and add-to-cart, with separate title+body for digital content and other Article 16 exceptions. Article 16 exclusions with category inheritance — competing plugins gate this behind a paid Pro tier; here it’s free. Native GDPR integration: suggested Privacy Policy snippet + personal-data exporter + eraser, all keyed on the customer email — no second GDPR plugin to install. Standalone mode: the form, shortcode, request log, email notifications, SHA-256 receipt hash, Annex I.B model and GDPR integration all run without WooCommerce. The plugin always lives in its own top-level Withdrawals menu (with a Settings submenu), with or without WooCommerce — same path on every install. Public-facing pieces Public withdrawal page automatically created on activation with a neutral, translation-ready template and the form embedded via shortcode, ready to publish and with the reminder to review it with a legal advisor kept in the dashboard instead of in the page itself. [ayudawp_withdrawal_form] shortcode for embedding the form anywhere on the site. [ayudawp_withdrawal_link] 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/2673 without forcing a specific footer layout. [ayudawp_withdrawal_excluded_notice] 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. HTML5-semantic form with HTML5 validation, honeypot anti-spam, escaped output, sanitized input and CSRF nonces. Privacy-policy acceptance checkbox before submit, linked to the WordPress-configured Privacy Policy page. Frontend and backend links generated by the plugin carry rel="noopener nofollow" to keep the site’s link equity contained. WooCommerce-specific pieces (auto-activated when WooCommerce is detected) My Account → Right of withdrawal 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. Request tracking for the customer: the same endpoint lists their own requests with date, order, scope, status, the note written when resolving them and the receipt code, and the order row shows the status of a request already open instead of an empty slot. Covers the requests they sent while signed in, including those registered without a matching order. Withdrawal notice injected into transactional emails (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. Automatic verification of the order/email pair 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). Optional “Accept unmatched requests” mode: register requests that do not match any order as Unverified for manual review instead of rejecting them upfront, highlighted across the admin (notification email, list badge, detail warning and CSV column). Off by default. Configurable advisory deadline: 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. Order-number compatibility 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. “Withdrawal” column on the WooCommerce orders screen (legacy and HPOS) showing the status of any linked request, toggleable from Screen Options. Private order notes added at every lifecycle step (request received, accepted, rejected, completed) including any admin comment. HPOS-compatible from day one, declared via FeaturesUtil::declare_compatibility(). Admin tooling Full request log as a private custom post type with status lifecycle (pending → accepted → rejected → completed), customer details, scope (full / partial), IP, user agent and UTC submission timestamp for legal traceability. CSV export of the request log 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 Withdrawals → Export withdrawals. Columns include submission and resolution timestamps, scope, status, acknowledgement-delivery flag, receipt hash and excluded items, with cells escaped against CSV/formula injection. Audit trail per request: 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. Bulk actions to mark several requests as accepted, rejected or completed at once, with email notification on transition. Status metabox with required comment when rejecting, optional comment when completing — comment forwarded to the customer email. Acknowledgement email to the customer 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. Notification email to the shop admin with reply-to set to the customer, sanitized against header injection. Captured checkout consents surfaced in the request detail metabox: exact text, accepted/declined state, timestamp, IP, user agent — durable proof on file. Consistent admin menu: always a top-level Withdrawals menu with a Settings submenu, regardless of whether WooCommerce is active. Same path on every install. Legal disclaimer block in the settings page making it explicit that the plugin provides optional technical tools and does not guarantee legal compliance. Mandatory / Recommended / Optional tags on every setting description so the merchant can scan the form quickly. Multilingual stores: WPML and Polylang Compliance cannot depend on the language the customer was browsing in, so both plugins are supported natively, with nothing to configure: Set the withdrawal status once, on the product or category in your original language, and it holds across every translation: excluded-product notice, Art. 16(m) and Art. 14(4)(a) checkout consents, and excluded items recorded on the order. An explicit status on a translation still wins, for per-language exceptions. Every link follows the visitor’s language: withdrawal page, printable Annex I.B view, button in the WooCommerce emails, excluded-notice link and [ayudawp_withdrawal_link] shortcode. Your own texts stay translatable, with no snippets: a bundled wpml-config.xml exposes the notice titles and bodies, the form intro, the consent texts and the trader address under String Translation, copies the withdrawal status to translations, and marks the request log as non-translatable. The plugin’s own strings arrive as language packs per locale. See the FAQ for the current limitation on the plugin’s emails. Built for production Conditional asset loading: CSS only loads on the withdrawal page, single-product pages that actually show the excluded notice, and plugin admin screens. Translation-ready: Spanish (es_ES) and every other locale are delivered as language packs from translate.wordpress.org, so they update on their own. Follows WordPress Coding Standards, fully escaped output and sanitized input, capability checks and nonces on every admin action. 11 documented filters and 4 actions for developers and agencies to extend the plugin without forking. PHP 7.4+, WordPress 6.0+, WooCommerce 7.0+ (optional). Why this plugin? 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: Fully free, no paid tier. 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. Two-step “confirm withdrawal” function built in, 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. The only plugin in the directory 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. The only plugin in the directory that ships the Annex I.B model withdrawal form dynamically generated from the shop data, with a printable view — meeting the Art. 6(1)(h) information obligation that the new directive does not replace. The only plugin in the directory that injects the two consent checkboxes (Art. 16(m) digital content and Art. 14(4)(a) service started early) at the WooCommerce checkout, with durable proof persisted on the order. The only plugin in the directory that ships Article 16 product/category exclusions with full subcategory inheritance — competing plugins gate this behind their own paid Pro tier. Native integration with the WordPress GDPR tools (Privacy Policy snippet + personal-data exporter and eraser) — no second GDPR plugin to install. Standalone or with WooCommerce. 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. Compatible by default with Sequential Order Numbers (free and Pro) and Custom Order Numbers for WooCommerce (Tyche and WPFactory), with a filter for any other numbering scheme. Real multilingual support (WPML, Polylang): exclusions and checkout consents configured once hold across every translation, and your editable texts are translatable from String Translation. Configurable from the settings UI, 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/phone/email, and which roles may manage requests. Developer-friendly: 11 documented filters + 4 actions so agencies can extend it without forking. Maintained by a Spanish WordPress trainer with 20+ years on the platform: es_ES translation kept up to date by the author on the official WordPress.org translation platform, 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). Roadmap Planned for upcoming free versions: WooCommerce Checkout block support for the Art. 16(m) and Art. 14(4)(a) consents, for stores already migrated away from the classic checkout shortcode. HTML email templates inheriting the WooCommerce email theme, and plugin emails composed in the customer’s own language on multilingual stores. Gutenberg block and classic widget for the withdrawal link. Custom WooCommerce order status “Withdrawal requested”, with automatic transition on acceptance. PDF download of the request with the SHA-256 receipt hash printed on it. Dashboard widget with counters, pending requests and monthly stats. Privacy 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: Customer name and email address (required to contact the consumer about the request). Order reference and order date (required to validate the request against the purchase). 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). Submission timestamp (UTC) and SHA-256 receipt hash (required to recompute and verify the integrity of the original submission if disputed). Data is stored as a private custom post type entry (ayudawp_withdrawal) 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. 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 Settings → Privacy → Policy Guide. Withdrawal data is also exposed to the native WordPress Tools → Export Personal Data and Tools → Erase Personal Data screens (filtered by customer email). Support Need private support or custom development? 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 contact me and tell me what you need. Need help or have suggestions? Official website WordPress support forum YouTube channel Documentation and tutorials Love the plugin? Please leave us a 5-star review and help spread the word! About AyudaWP.com 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.