{"id":211230,"date":"2024-11-18T07:04:56","date_gmt":"2024-11-18T07:04:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/qookieqloud-consent-management\/"},"modified":"2026-09-21T06:48:47","modified_gmt":"2026-09-21T06:48:47","slug":"qookieqloud","status":"publish","type":"plugin","link":"https:\/\/oci.wordpress.org\/plugins\/qookieqloud\/","author":23165401,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.5","stable_tag":"2.0.5","tested":"7.1.1","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"QookieQloud\u2122 Consent Management","header_author":"Qod:li AB","header_description":"Connects to and integrates Cookie-Consent-Manager from QookieQloud\u2122 by Qodli AB.","assets_banners_color":"b1c9c4","last_updated":"2026-09-21 06:48:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/qookieqloud.com\/wordpress","header_author_uri":"https:\/\/qodli.se","rating":5,"author_block_rating":0,"active_installs":0,"downloads":1423,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.12":{"tag":"1.2.12","author":"qodliab","date":"2024-11-18 07:06:46","revision":3190944},"1.3.0":{"tag":"1.3.0","author":"qodliab","date":"2024-11-30 09:29:21","revision":3199805},"1.3.1":{"tag":"1.3.1","author":"qodliab","date":"2025-10-22 09:55:35","revision":3382484},"1.3.2":{"tag":"1.3.2","author":"qodliab","date":"2025-10-22 10:38:24","revision":3382524},"1.4.0":{"tag":"1.4.0","author":"qodliab","date":"2025-10-22 16:51:10","revision":3382811},"1.4.1":{"tag":"1.4.1","author":"qodliab","date":"2025-10-23 11:41:51","revision":3383363},"1.4.2":{"tag":"1.4.2","author":"qodliab","date":"2025-11-06 18:55:01","revision":3391374},"1.4.3":{"tag":"1.4.3","author":"qodliab","date":"2025-11-22 16:13:56","revision":3401024},"1.4.4":{"tag":"1.4.4","author":"qodliab","date":"2025-12-03 12:42:05","revision":3409506},"1.4.5":{"tag":"1.4.5","author":"qodliab","date":"2026-05-21 14:14:49","revision":3542125},"2.0.0":{"tag":"2.0.0","author":"qodliab","date":"2026-06-05 10:21:13","revision":3562215},"2.0.1":{"tag":"2.0.1","author":"qodliab","date":"2026-06-05 10:30:20","revision":3562224},"2.0.2":{"tag":"2.0.2","author":"qodliab","date":"2026-08-14 14:06:02","revision":3647530},"2.0.3":{"tag":"2.0.3","author":"qodliab","date":"2026-09-15 21:20:06","revision":3697705},"2.0.4":{"tag":"2.0.4","author":"qodliab","date":"2026-09-20 12:33:45","revision":3704250},"2.0.5":{"tag":"2.0.5","author":"qodliab","date":"2026-09-21 06:48:47","revision":3704966}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3190942,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3190942,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3190942,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3562215,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3562215,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.12","1.3.0","1.3.1","1.3.2","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[262246],"plugin_tags":[216591,234707,16626,131785,396],"plugin_category":[54],"plugin_contributors":[234708],"plugin_business_model":[],"class_list":["post-211230","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-consent-management","plugin_tags-consentmode-v2","plugin_tags-cookie-consent","plugin_tags-gdpr","plugin_tags-privacy","plugin_category-security-and-spam-protection","plugin_contributors-qodliab","plugin_committers-qodliab"],"banners":{"banner":"https:\/\/ps.w.org\/qookieqloud\/assets\/banner-772x250.png?rev=3562215","banner_2x":"https:\/\/ps.w.org\/qookieqloud\/assets\/banner-1544x500.png?rev=3562215","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/qookieqloud\/assets\/icon.svg?rev=3190942","icon":"https:\/\/ps.w.org\/qookieqloud\/assets\/icon.svg?rev=3190942","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Manage banner design, cookie categories and consent settings in QookieQloud. The WordPress plugin loads your banner and shows statistics for the domain you connect.<\/p>\n\n<p>New installations use the v2 connection flow. Existing v1 installations keep their current banner until an administrator explicitly connects to v2. Availability of v2 depends on your account's rollout access in QookieQloud.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>QookieQloud is an external service. An account and a domain in QookieQloud are required.<\/p>\n\n<p>The connection popup opens https:\/\/app.qookieqloud.com. It sends the integration type, WordPress return address, a random state and a PKCE challenge. After you approve, WordPress exchanges a one-time code for API credentials over HTTPS. The private credential stays encrypted on your WordPress server and is used to read domain statistics and revoke this installation's access. It cannot sign in to your QookieQloud account.<\/p>\n\n<p>For enabled banners, visitors load scripts from https:\/\/cf-cdn.qookieqloud.com\/v2\/. Only the public site key appears in the page. The banner contacts the QookieQloud API to retrieve settings and submit detected cookies and consent choices. A public key is not a secret or an account login credential.<\/p>\n\n<p>Existing v1 installations continue their original registration and statistics requests to https:\/\/app.qookieqloud.com\/api\/v1\/ and their original CDN loader until explicitly connected to v2.<\/p>\n\n<p>Service terms and privacy information: https:\/\/qookieqloud.com\/policy<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPL v2.0 or later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WP Consent API and QookieQloud.<\/li>\n<li>Open QookieQloud in the WordPress administration menu and click Connect to QookieQloud.<\/li>\n<li>Sign in at app.qookieqloud.com in the popup. Select a domain you manage, or add one, and approve.<\/li>\n<li>Return to WordPress. The keys are saved automatically: there is nothing to copy. The banner is enabled by default for public visitors; review the banner switches to change this.<\/li>\n<li>Clear any page or CDN cache after connecting or changing the banner settings.<\/li>\n<\/ol>\n\n<p>PHP OpenSSL is required for v2. HTTPS is required for public callback addresses; HTTP localhost and 127.0.0.1 are supported for local testing.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20upgrading%20interrupt%20my%20existing%20banner%3F\"><h3>Will upgrading interrupt my existing banner?<\/h3><\/dt>\n<dd><p>Existing v1 installations stay on v1. The plugin switches only after an administrator successfully approves and saves a v2 connection. Clear page caches after switching.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20copy%20api%20keys%3F\"><h3>Do I need to copy API keys?<\/h3><\/dt>\n<dd><p>No. The popup exchanges keys automatically. The private key remains on the server, while the public key travels with the banner.<\/p><\/dd>\n<dt id=\"can%20a%20partner%20connect%20a%20customer%27s%20domain%3F\"><h3>Can a partner connect a customer's domain?<\/h3><\/dt>\n<dd><p>Yes, provided the account has access to that customer's domain and has v2 access enabled.<\/p><\/dd>\n<dt id=\"can%20i%20test%20from%20localhost%3F\"><h3>Can I test from localhost?<\/h3><\/dt>\n<dd><p>Yes. The browser returns to WordPress; QookieQloud does not need to reach your local server. Selecting a live domain shares that domain's settings and statistics. Choose a dedicated test domain to keep test activity separate.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20disconnect%3F\"><h3>What happens when I disconnect?<\/h3><\/dt>\n<dd><p>The plugin revokes this installation's private API access and stops adding the banner. It does not delete the domain, revoke other installations or fall back to v1. Clear cached pages afterwards. Previously published public keys are shared domain identifiers, not revoked private credentials.<\/p><\/dd>\n<dt id=\"can%20i%20show%20the%20banner%20to%20logged-in%20visitors%3F\"><h3>Can I show the banner to logged-in visitors?<\/h3><\/dt>\n<dd><p>Yes. Enable the corresponding switch in Banner settings and save. Clear page caches afterwards.<\/p><\/dd>\n<dt id=\"what%20if%20i%20move%20or%20clone%20wordpress%3F\"><h3>What if I move or clone WordPress?<\/h3><\/dt>\n<dd><p>The private connection is bound to the site's URL and WordPress authentication salt. Reconnect after either changes. A copied database alone cannot decrypt the connection at another site URL.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.5<\/h4>\n\n<ul>\n<li>Refined the WordPress dashboard layout with a full-width hero and centered content cards.<\/li>\n<li>Moved dashboard KPIs into the hero and added a Cookie Scan summary block.<\/li>\n<li>Added v2 popup connection, private API statistics and public-key banner loading.<\/li>\n<li>Added confirmed change-connection and disconnect actions, banner switches and bundled connection artwork.<\/li>\n<li>Preserved v1 for existing installations until explicit migration.<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Added formal plugin dependency requirement for WP Consent API (Requires Plugins header and admin notice).<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Moved to a new CDN.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Tested and confirmed with Wordpress 7.1.x. Also added Dashboard link to dropdown menu in admin-bar.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added detailed dashboard with stats and insights on cookie consents and user interactions.<\/li>\n<\/ul>\n\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Compatible with Wordpress 7.0.x<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Compatible with Wordpress 6.9.x<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Changed backend and loader URLS<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Fixed issue with registration in WP Consent API<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fixed faulty time\/date in dashboard widget<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added admin-bar icon and menu with status<\/li>\n<li>Added Dashboard-widget with stats<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Corrected versions<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Tested and confirmed with WP 6.8.3<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Integrated with WP Consent API<\/li>\n<\/ul>\n\n<h4>1.2.12<\/h4>\n\n<ul>\n<li>Added assets<\/li>\n<\/ul>\n\n<h4>1.2.11<\/h4>\n\n<ul>\n<li>Improved Sanitizing, Escaping and Validation<\/li>\n<li>Moved remote-image to local plugin\/assets<\/li>\n<\/ul>\n\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>Added domain registration verification on activation.<\/li>\n<li>Enhanced loading options for consent manager script.<\/li>\n<li>Improved UI for admin notifications and settings page.<\/li>\n<\/ul>","raw_excerpt":"Connect WordPress to QookieQloud to load your cookie banner and view consent statistics.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/211230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=211230"}],"author":[{"embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/qodliab"}],"wp:attachment":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=211230"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=211230"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=211230"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=211230"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=211230"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=211230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}