Cookie Consent
Cookie Consent est un bandeau de consentement aux cookies entièrement personnalisable, conforme RGPD et CCPA pour WordPress. Il donne à vos visiteurs la pleine maîtrise des cookies et scripts de tracking qui s’exécutent sur votre site, organise les cookies en catégories claires, empêche le chargement des scripts non essentiels en l’absence d’accord et tient un journal des consentements à l’épreuve des falsifications, pour démontrer votre conformité lors des audits.
Le plugin est léger, sans dépendance côté front, embarque un runtime en JavaScript pur et s’intègre au plugin Polyglot pour que le texte du bandeau soit traduit automatiquement dans toutes les langues de votre site.

Points forts
- Consentement par catégorie. Les cookies sont regroupés en trois catégories par défaut : Nécessaires (toujours actifs), Analytiques (Google Analytics, Matomo, Hotjar, Mixpanel) et Marketing (Facebook Pixel, LinkedIn Insight, Google Ads).
- Blocage automatique des scripts. Ajoutez des motifs d’URL pour les scripts à bloquer tant que le consentement n’est pas donné. Chaque motif est associé à une catégorie et débloqué automatiquement dès que le visiteur opte-in.
- Cinq positions de bandeau. Choisissez entre Bas gauche, Bas droite, Bas centré, Haut et Modal centré.
- Éditeur d’apparence en direct. Configurez les couleurs principale, de fond et du texte via un sélecteur natif + pickup hex, plus un bouton de paramètres flottant en option. Un aperçu en direct affiche les changements avant l’enregistrement.
- Journal des consentements et statistiques. Chaque décision de consentement est stockée dans une table dédiée. Un tableau de bord intégré présente le total des consentements, les taux d’acceptation par catégorie et une ventilation quotidienne paginée.
- Éditeur multilingue. Sélectionnez la langue à éditer dans un menu déroulant des onglets Général et Catégories, et traduisez chaque chaîne visible par locale. Avec le plugin Polyglot installé, un bouton Traduire avec l’IA remplit automatiquement n’importe quelle langue cible à partir de la source.
- Licence et mises à jour intégrées. Saisissez votre clé de licence dans l’onglet Général pour activer les mises à jour automatiques en un clic depuis le serveur d’updates Slotix — plus besoin de téléverser des ZIP manuellement.
- Durée de vie du cookie configurable. Le cookie de consentement peut expirer entre 1 et 730 jours.
- Pensé pour les développeurs. APIs PHP et JavaScript, plus un événement DOM
ccm:consent-updatedpour vous brancher sur des thèmes, plugins ou tag managers tiers.
Prérequis
| Composant | Version minimale |
|---|---|
| WordPress | 5.8 (testé jusqu’à 7.0) |
| PHP | 7.4 |
| MySQL | 5.7 |
| MariaDB | 10.3 |
Le plugin fonctionne avec tout thème moderne. Aucune bibliothèque supplémentaire, étape de build ou service externe n’est requis pour faire tourner le bandeau côté front. Polyglot est optionnel ; installez-le uniquement si vous avez besoin de traduire le texte du bandeau.
Installation
- Téléchargez le dernier
cookie-consent.zipdepuis le portail plugins Slotix ou votre reçu d’achat. - Dans WordPress, allez dans Extensions → Ajouter → Téléverser une extension.
- Sélectionnez le fichier ZIP et cliquez sur Installer maintenant.
- Cliquez sur Activer une fois l’installation terminée.
- Ouvrez Réglages → Cookie Consent pour démarrer la configuration. Sur une installation neuve, le bandeau est activé avec des valeurs par défaut raisonnables, mais examinez chaque onglet avant la mise en ligne.
Vous pouvez aussi téléverser le dossier décompressé cookie-consent dans /wp-content/plugins/ via SFTP et activer le plugin depuis Extensions → Extensions installées.
Configuration
L’écran des réglages est découpé en cinq onglets : Général, Apparence, Catégories, Blocage de scripts et Statistiques. Parcourez-les dans l’ordre lors de la première configuration.
Général

L’onglet Général se compose de quatre cartes, de haut en bas : Licence, le sélecteur Langue d’édition, Textes du bandeau et Réglages globaux.
Licence. Collez la clé de licence reçue dans votre e-mail de confirmation d’achat — par exemple PILOT-XXXX-XXXX-XXXX-XXXX. Cliquez sur Vérifier & enregistrer ; le plugin contacte le serveur d’updates Slotix, valide la clé sur votre domaine et active les mises à jour automatiques en un clic depuis l’écran Extensions de WordPress. Sans clé, le plugin reste fonctionnel mais vous devrez téléverser un nouveau ZIP manuellement à chaque release.
Langue d’édition. Un menu déroulant qui liste les langues actuellement activées sur le site (anglais, italien, espagnol, français et allemand par défaut). Chaque champ texte ci-dessous est stocké par langue — changer le sélecteur permute les valeurs visibles sans perdre les autres. Si le plugin Polyglot est installé et activé, un bouton Traduire avec l’IA apparaît à côté du sélecteur ; cliquez dessus pour remplir automatiquement la langue cible en cours à partir de la source dans la langue par défaut.
Textes du bandeau. Formulations affichées aux visiteurs. Chaque champ est localisé selon la langue d’édition active.
- Titre du bandeau — titre affiché en haut du bandeau ; par défaut « Nous respectons votre vie privée ».
- Description du bandeau — paragraphe explicatif. Mentionnez les cookies que vous déposez et liez vers la politique de confidentialité complète. La phrase littérale « Politique de confidentialité » dans la description est convertie automatiquement en lien vers l’URL de politique de confidentialité configurée.
- Bouton Tout accepter — par défaut « Tout accepter ». Opte le visiteur in pour toutes les catégories.
- Bouton Tout refuser — par défaut « Tout refuser ». Le RGPD exige qu’il soit aussi visible que Tout accepter.
- Bouton Paramètres des cookies — par défaut « Paramètres des cookies ». Ouvre la modale de consentement granulaire depuis le bandeau.
- Bouton Accepter la sélection — par défaut « Accepter la sélection ». Affiché dans la modale ; enregistre les choix du visiteur et ferme la fenêtre.
Réglages globaux. S’appliquent à toutes les langues.
- URL de la politique de confidentialité — vers où pointe le lien « Politique de confidentialité » dans la description du bandeau. Accepte un chemin relatif (
/politique-confidentialite) ou une URL complète. Laissez vide pour masquer le lien. - Durée du cookie — combien de temps la décision de consentement est mémorisée, en jours. Valeurs acceptées : 1 à 730. La recommandation RGPD est de 365 jours ; des valeurs plus longues réduisent les redemandes mais peuvent être pointées par des auditeurs stricts.
Apparence

L’onglet Apparence est organisé en trois sections : Disposition, Couleurs et Aperçu.
Disposition.
- Position du bandeau — choisissez Bas gauche, Bas droite, Bas centré, Barre du haut ou Modal centré. Le Modal centré rend une fenêtre centrée avec un fond opaque qui bloque toute interaction avec la page tant qu’aucune décision n’est prise ; ne l’utilisez que lorsqu’une conformité stricte est requise, car il est plus intrusif.
- Bouton flottant — une case à cocher. Lorsqu’elle est activée, une petite icône reste ancrée dans le coin de la page pour que les visiteurs puissent rouvrir les paramètres de consentement à tout moment. Obligatoire dans certaines juridictions (notamment l’Italie et la France).
Couleurs. Chaque ligne associe un sélecteur de couleur natif et un champ hex — cliquer sur le sélecteur ouvre la palette du système d’exploitation, et la valeur hex est synchronisée dans les deux sens.
- Couleur principale — utilisée pour les boutons et les interrupteurs de la modale. Choisissez une couleur qui respecte le contraste WCAG AA avec un texte blanc.
- Couleur de fond — fond du bandeau et de la modale. Blanche par défaut.
- Couleur du texte — texte du corps. Gris foncé par défaut.
Aperçu. Une miniature live du bandeau se trouve sous les couleurs et se met à jour en temps réel lorsque vous modifiez titres, descriptions, libellés de boutons et couleurs ailleurs dans l’admin — vous pouvez ainsi vérifier le rendu avant d’enregistrer.
Catégories

Trois catégories sont fournies avec le plugin. Vous pouvez les renommer et éditer leurs descriptions par langue. La catégorie Nécessaires est toujours active et affichée aux visiteurs avec un badge « Toujours activé » au lieu d’un interrupteur — elle ne peut être ni désactivée par l’admin ni décochée par le visiteur.
- Nécessaires. Cookies indispensables au fonctionnement du site — session, authentification, tokens de sécurité, préférence de langue. Toujours actifs.
- Analytiques. Cookies statistiques qui mesurent l’interaction des visiteurs avec le site. Exemples :
_ga,_gid,_hjSession,mp_*. - Marketing. Cookies utilisés pour suivre les visiteurs d’un site à l’autre à des fins publicitaires. Exemples :
_fbp,fr,IDE,li_sugr.
Pour chaque catégorie non nécessaire, vous pouvez éditer :
- Nom — affiché comme titre de la catégorie dans la modale de réglages. Localisé selon la langue d’édition.
- Description — affichée sous le titre. Expliquez en termes simples quels scripts la catégorie contrôle. Localisée selon la langue d’édition.
- Activée par défaut — lorsqu’elle est cochée, l’interrupteur démarre en position ON pour un visiteur qui ouvre la modale pour la première fois (il peut toujours la désactiver avant de cliquer sur Accepter la sélection). Lorsqu’elle est décochée, l’interrupteur démarre OFF.
L’onglet Catégories respecte le sélecteur Langue d’édition en haut, vous pouvez ainsi rédiger les descriptions italiennes pour le bandeau italien et les descriptions anglaises pour le bandeau anglais indépendamment. Les réglages structurels (catégories existantes, leur caractère obligatoire, leur état par défaut) sont globaux et partagés entre les langues.
Blocage de scripts

C’est ici que se joue la conformité. Sans blocage des scripts, le bandeau est décoratif — les visiteurs peuvent refuser les cookies mais les scripts tiers se chargeront tout de même.
L’onglet se compose d’un formulaire Ajouter un nouveau motif de script en haut et de deux tableaux en dessous, l’un pour la catégorie Analytiques et l’autre pour Marketing.
Le formulaire d’ajout prend trois champs :
- Nom — libellé lisible affiché dans les tableaux d’admin (par exemple « Google Analytics »). Non visible des visiteurs.
- Motif d’URL — une sous-chaîne insensible à la casse, recherchée dans l’attribut
srcde chaque script ainsi que dans le corps des scripts inline. Exemples :google-analytics.com,googletagmanager.com,connect.facebook.net,hotjar.com,linkedin.com/insight. - Catégorie — Analytiques ou Marketing. Le script n’est chargé qu’une fois que le visiteur a opté-in à cette catégorie.
Chaque ligne des tableaux Analytiques / Marketing affiche le Nom, le Motif, un interrupteur de statut par ligne (activer/désactiver sans supprimer) et une action Supprimer. Le plugin embarque un jeu de motifs de démarrage pour les plateformes d’analytics et publicitaires les plus courantes ; passez-le en revue et complétez-le selon la configuration réelle de votre tag manager.
Les motifs sont confrontés à chaque chargement de page. Les scripts bloqués voient leur attribut type réécrit en text/plain afin que le navigateur ne les exécute pas. Lorsque le consentement est donné, le runtime localise les balises bloquées, restaure leur type à text/javascript et les ré-injecte pour qu’elles s’exécutent immédiatement sans rechargement de page.
Statistiques

L’onglet Statistiques est en lecture seule et s’organise en trois tuiles KPI en haut et un tableau Ventilation quotidienne paginé en dessous.
Tuiles KPI.
- Total des consentements — chaque Tout accepter, Tout refuser ou Accepter la sélection compte pour un enregistrement.
- Analytiques acceptés — total des visiteurs qui ont opté-in pour la catégorie Analytiques, avec le pourcentage d’acceptation rapporté au Total des consentements.
- Marketing acceptés — idem pour Marketing.
Ventilation quotidienne. Un tableau avec une ligne par journée calendaire ayant enregistré au moins une décision, affichant Date, Total, Acceptations Analytiques et Marketing. La liste est triée du plus récent au plus ancien et paginée par tranches de 15 lignes ; utilisez les boutons de navigation (« ‹ › ») ou tapez un numéro de page directement dans le champ pour vous y rendre. Le coin supérieur droit affiche le nombre total de jours.
Utilisez ces chiffres pour estimer la part de votre trafic analytics perdue à cause des refus et pour démontrer aux auditeurs que la collecte de consentement fonctionne.
Utilisation
Une fois configuré, le bandeau apparaît automatiquement lors de la première visite et après expiration du cookie de consentement. Aucun shortcode ni tag de template n’est requis.
Rouvrir la modale de paramètres
Si le bouton flottant est désactivé, vous pouvez ajouter un lien n’importe où sur votre site pour permettre aux visiteurs de rouvrir les paramètres. Utilisez une ancre classique avec une classe :
<a href="#" class="ccm-open-settings">Préférences cookies</a>Tout élément doté de la classe ccm-open-settings ouvre la modale de consentement au clic. Pratique pour les liens en pied de page et les pages de compte.
API PHP
Le code côté serveur peut conditionner l’émission de balisage ou l’enqueue de scripts au consentement :
if ( function_exists( 'cookie_consent' ) && cookie_consent()->public->has_consent( 'analytical' ) ) {
wp_enqueue_script( 'my-analytics', 'https://example.com/analytics.js', array(), null, true );
}Les catégories acceptées par has_consent() sont les slugs de l’onglet Catégories : necessary, analytical, marketing, plus n’importe quel slug personnalisé que vous ajoutez.
API JavaScript
Le front expose un global CookieConsent doté d’une API petite et stable :
// Check whether the visitor has opted in to a specific category.
CookieConsent.hasConsent('marketing'); // → true | false
// Read the full consent object.
CookieConsent.getConsent();
// → { necessary: true, analytical: true, marketing: false, ts: 1716000000 }
// Programmatically open the settings modal.
CookieConsent.openSettings();
// Wipe the stored decision so the banner reappears.
CookieConsent.resetConsent();Événement de changement de consentement
Le runtime émet un événement DOM chaque fois qu’un consentement est donné, mis à jour ou retiré. Écoutez-le pour piloter vos propres intégrations — par exemple, pousser un événement dataLayer personnalisé vers Google Tag Manager :
document.addEventListener('ccm:consent-updated', function (event) {
const consent = event.detail;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'cookie_consent_update',
analytical: consent.analytical,
marketing: consent.marketing,
});
});La charge utile de l’événement reflète l’objet renvoyé par CookieConsent.getConsent().
Filter hook
Les développeurs PHP peuvent modifier l’objet de settings transmis au runtime front via le filtre ccm_js_settings. Pratique pour surcharger un texte par langue ou par page sans toucher à la base de données :
add_filter( 'ccm_js_settings', function ( $settings ) {
if ( is_page( 'corporate' ) ) {
$settings['title'] = __( 'Corporate cookie policy', 'my-theme' );
}
return $settings;
} );Tables de base de données
À l’activation, le plugin crée deux tables dans la base WordPress :
{wp_prefix}ccm_consents— une ligne par décision de consentement, avec horodatage, IP hashée, user agent et choix booléens par catégorie.{wp_prefix}ccm_blocked_scripts— les motifs de blocage de scripts configurés dans l’admin.
Les deux tables sont supprimées par le uninstall.php fourni lorsque le plugin est supprimé via l’interface WordPress.
Captures d’écran
Les écrans ci-dessous illustrent un cycle de configuration complet.






FAQ
Le plugin est-il conforme RGPD dès l’installation ?
Le plugin fournit toutes les briques techniques nécessaires à la conformité RGPD : consentement préalable, catégories granulaires, bouton de refus aussi visible que celui d’acceptation, retrait du consentement facile et journal infalsifiable. La conformité dépend de la façon dont vous configurez le plugin : vous devez encore enregistrer chaque script tiers dans l’onglet Blocage de scripts, rédiger une politique de confidentialité précise et y faire référence depuis le bandeau.
Couvre-t-il le CCPA et d’autres lois sur la vie privée ?
Le même mécanisme — catégories granulaires, blocage de scripts et modale de paramètres réouvrable — satisfait l’exigence « Do Not Sell » du CCPA, le RGPD britannique, la LGPD brésilienne et la plupart des lois modernes sur la vie privée. Pour un libellé de bouton spécifique à une région, vous pouvez utiliser le filtre ccm_js_settings combiné à un plugin de géolocalisation, ou vous appuyer sur Polyglot pour des variations par langue.
Va-t-il ralentir mon site ?
Non. Le runtime front est un unique fichier JavaScript vanilla (environ 12 Ko minifié, sans jQuery ni dépendance externe), chargé avec defer. Le bandeau est rendu en une seule passe DOM et il n’y a aucun appel distant pendant le chargement de la page.
Fonctionne-t-il avec les plugins de cache ?
Oui. Le bandeau lit son état de consentement depuis un cookie first-party et se rend entièrement côté client, donc il est compatible avec les caches de pages complètes (WP Rocket, LiteSpeed Cache, W3 Total Cache, Cloudflare APO). Assurez-vous que le cookie de consentement n’est pas supprimé par votre couche de cache.
Comment s’intègre-t-il avec Google Tag Manager ?
Deux schémas sont pris en charge. Le plus simple consiste à ajouter googletagmanager.com à l’onglet Blocage de scripts et à le rattacher à la catégorie Analytiques ou Marketing — GTM lui-même ne se chargera pas tant que le consentement n’est pas donné. Le schéma le plus flexible laisse GTM se charger sans condition et conditionne les tags individuels à l’intérieur de GTM en utilisant l’événement ccm:consent-updated comme déclencheur.
Puis-je traduire le bandeau ?
Oui. Le plugin est entièrement internationalisé ; le text domain est cookie-consent et les fichiers .pot se trouvent dans le dossier languages. Si le plugin Polyglot est installé, les chaînes du bandeau sont récupérées automatiquement et traduites dans toutes les langues actives. Vous pouvez aussi surcharger un texte par page via le filtre ccm_js_settings.
Combien de temps le consentement est-il conservé ?
Pendant le nombre de jours configuré sous Général → Durée du cookie. La valeur par défaut est 365 jours. À l’expiration du cookie, le bandeau réapparaît et le visiteur doit redonner son consentement.
Le plugin stocke-t-il des données personnelles ?
Le journal des consentements stocke un hash SHA-256 de l’adresse IP du visiteur (jamais l’IP brute), la chaîne user agent, un horodatage et les choix par catégorie. Aucun nom, adresse e-mail ou IP complète n’est conservé. Le journal vise à satisfaire l’obligation RGPD de démontrer que le consentement a été donné.
Puis-je exporter le journal des consentements ?
Le journal est stocké dans une table WordPress standard ({wp_prefix}ccm_consents) et peut être exporté avec n’importe quel outil de base de données — phpMyAdmin, Adminer, wp db export ou un client SQL. Un export CSV natif depuis l’onglet Statistiques est prévu pour une prochaine release.
Dépannage
Le bandeau n’apparaît pas
Le bandeau ne s’affiche automatiquement que si le cookie ccm_consent n’est pas présent dans le navigateur du visiteur. Si vous avez déjà accepté ou refusé lors d’une visite précédente, la décision est mémorisée pour la durée du cookie configurée — typiquement 365 jours — et le bandeau reste masqué. Pour tester depuis zéro, ouvrez les DevTools du navigateur, supprimez le cookie ccm_consent sous Application → Cookies et rechargez. En alternative non destructive, cliquez sur le bouton de paramètres flottant (s’il est activé) et utilisez Tout refuser pour faire réapparaître le bandeau au prochain chargement, ou appelez CookieConsent.resetConsent() depuis la console du navigateur.
Des scripts se chargent malgré le refus
Vérifiez que chaque script de tracking est listé sous Blocage de scripts et que le motif d’URL correspond réellement. Les scripts inline injectés par le thème ou les page builders sont également bloqués, mais seulement si leur contenu correspond au motif configuré. Utilisez l’onglet Réseau des DevTools pour identifier l’hôte exact de toute requête qui a échappé au filtre, puis ajoutez-le au tableau de Blocage de scripts.
Le bouton flottant chevauche d’autres widgets
Désactivez Afficher le bouton flottant sous Apparence et ajoutez plutôt un lien <a class="ccm-open-settings">Préférences cookies</a> à votre pied de page. Vous gardez ainsi un contrôle total sur le placement.
Les statistiques affichent zéro consentement
Les compteurs n’augmentent que lorsqu’un visiteur clique sur un bouton du bandeau. Les vues de page sans interaction avec le bandeau ne sont pas journalisées. Si vous voyez zéro après le lancement, vérifiez que le bandeau s’affiche bien et que vous ne naviguez pas en tant qu’administrateur connecté sur une page où le bandeau a été précédemment fermé.
Le texte du bandeau n’est pas traduit
Polyglot doit être installé et activé, et la langue cible doit être activée dans Polyglot → Réglages. Les chaînes du bandeau sont traduites à la première requête après l’activation d’une langue ; visitez une page dans cette langue une fois en tant qu’administrateur pour déclencher la traduction.
Les réglages sont réinitialisés après mise à jour
Toute la configuration admin (textes du bandeau, catégories, apparence, traductions) vit dans une unique option WordPress ccm_settings. Les motifs de blocage de scripts se trouvent dans la table {wp_prefix}ccm_blocked_scripts. Aucun des deux n’est touché par les mises à jour du plugin. Si vous constatez des réinitialisations, vérifiez qu’un plugin de sécurité ou de synchronisation de staging n’écrase pas les options — c’est rarement le plugin de cookies lui-même.