Design, programmation, référencement et marketing de sites web

Siatris Loi 25

Bannière de cookies conforme à la Loi 25 et à la LPRPDE avec enregistrement du consentement, exportation CSV et blocage des scripts

Table des matières

Pourquoi un plugiciel pour la Loi 25 ?

Les plugiciels disponibles dans le répertoire WordPress ne sont pas conçus pour la Loi québécoise, mais plutôt pour les lois européennes. Ceux qui couvrent la Loi 25 sont payants, ou alors ne font que montrer une fenêtre popup cosmétique sans vraiment empêcher les traqueurs de suivre l’usager (tel que la loi le demande).

De plus, la loi exige la portabilité des données, donc le plugiciel doit garder les informations recueillies. Souvent, les autres plugiciels sauvegardent les informations sur une structure info nuagique qui n’est pas au Québec et demandent un paiement pour l’hébergement des données.

Le plugiciel Loi 25 par Siatris inc. répond complètement aux exigences de la Loi 25, sans payer pour stocker les données.

Le plugiciel Siatris Loi 25 en résumé
  • Affiche une bannière de consentement et se souvient du choix de l’utilisateur (dans la langue de l’utilisateur, soit anglais ou français);
  • Détecte automatiquement la juridiction du visiteur (Québec, Canada, Europe) et affiche le texte de loi approprié;
  • Bloque les scripts tant que l’utilisateur n’a pas cliqué sur Accepter
  • Permet, en option, l’utilisation de Google Consent Mode v2
  • Enregistre chaque action d’acceptation ou de refus en données exportables en .csv

Ce que le plugiciel fait :

  • Affiche une bannière de consentement aux cookies et au suivi avant l’exécution de tout script, iframe ou pixel de suivi non essentiel;
  • Détecte automatiquement la juridiction du visiteur et affiche le texte juridique approprié :
    Textes relatifs à la Loi 25 (Québec) / LPRPDE pour le Canada, les États-Unis et le reste du monde par défaut
    Texte relatif au RGPD pour les 27 pays de l’UE, l’Islande, le Liechtenstein, la Norvège et le Royaume-Uni;
  • Bloque les scripts externes, iframes, appels fetch/XHR et balises « beacon » tant que le visiteur n’a pas cliqué sur « Accepter » — inclut les scripts ajoutés via le thème, des extensions ou Google Tag Manager;
  • Permet, en option, l’exécution des balises Google (GA4, Google Ads) dans un mode restreint (« consentement refusé ») plutôt qu’un blocage total, en utilisant le « Consent Mode v2 » officiel de Google;
  • Enregistre chaque action d’acceptation ou de refus avec l’adresse IP (hachée), l’user-agent (haché), la langue, la juridiction affichée et l’horodatage — données exportables au format CSV pour les audits.
Versions

2026-09-16

1.5.1
Mis à jour en ajoutant GDPR et Google Tag consent

Installation

Téléchargez, installez et activez.

Paramètres : Allez dans Réglages → Paramètres Loi 25 et configurez :

  • Durée du cookie
    Par défaut: 365 jours
  • Thème/mise en page/couleurs de la bannière
    selon votre thème
  • URL de la page politique de confidentialité
  • Juridiction : selon votre clientèle
    Par défaut: Détection automatique
  • Google Consent V2 : le « Blocage strict » est le paramètre par défaut recommandé ; ne passez en mode « Avancé » qu’après avoir vérifié et confirmé que les conteneurs GTM suivent un modèle officiel de Google ou possèdent des paramètres de consentement configurés.

Une vérification du schéma de la base de données s’exécute automatiquement lors du prochain chargement d’une page d’administration et ajoute, s’il y a lieu, une table pour conserver les données.

Utilisation

Dans l’administration WordPress, dans la colonne de gauche, recherchez Réglages > Paramètres Loi 25

Fonctionnement

Le côté technique, réservé aux programmeurs

  • Stockage du consentement : un cookie `qcpc_consent` (acceptation/refus), défini via AJAX lorsque le visiteur clique sur un bouton de la bannière.

  • Mécanisme de blocage : un script en ligne  s’exécute tout en haut de la balise `<head>` et modifie (`patch`) `setAttribute`, `.src`, `fetch`, `XHR` et `sendBeacon` afin d’intercepter toute requête externe avant son émission ; la mise en mémoire tampon de la sortie côté PHP (output buffering) assure la même fonction pour les scripts et iframes déjà présents dans le code HTML généré.

  • Détection de la juridiction : détermine l’adresse IP réelle du visiteur (vérifiée par rapport aux plages d’adresses publiées par Cloudflare avant de faire confiance à un en-tête de proxy, empêchant ainsi toute usurpation), identifie le pays via ipwho.is (HTTPS, avec mise en cache de 24h par IP pour éviter un appel à chaque consultation de page) et sélectionne le texte approprié (RGPD ou Loi 25) en conséquence.

  • class-qcpc-logger.php:8. `create_table` pour la journalisation (logger).
    Les données peuvent être exportées depuis l’interface d’administration.

  • Google Consent Mode (paramètre « Strict » ou « Advanced ») : le mode « Strict » bloque les balises Google (tout comme les autres) jusqu’à l’obtention du consentement ; le mode « Advanced » permet à GTM/gtag.js de se charger immédiatement mais signale un « refus de consentement » via `gtag(‘consent’,’default’,…)`, incitant ainsi les balises Google à s’auto-restreindre 
    ⚠️ cette méthode n’est fiable que si le conteneur GTM du client ne contient que des modèles de balises Google officiels, et non des pixels tiers ajoutés manuellement.

  • Langue : anglais/français, gérée soit via WPML, soit par le paramètre « Langue par défaut de la bannière » — indépendamment de la juridiction (un visiteur de l’UE sur un site francophone verra le texte relatif au RGPD en français).

Vérification du fonctionnement

  • Chargez le site dans une fenêtre de navigation privée/incognito — la bannière doit s’afficher avant toute action d’acceptation ; vérifiez l’onglet « Réseau » (Network) des outils de développement pour confirmer qu’aucune requête GA/GTM ou publicitaire n’est encore envoyée.
  • Cliquez sur « Accepter » — la bannière disparaît, le cookie `qcpc_consent=accept` est défini et les scripts précédemment bloqués se chargent désormais.
  • Cliquez sur « Refuser » lors d’une nouvelle session — vérifiez que le contenu bloqué le reste (testez une vidéo YouTube intégrée ou un élément similaire si le site en propose).
  • Définissez la juridiction sur « Toujours RGPD » (Always GDPR), rechargez la page et vérifiez que le texte conforme au RGPD s’affiche ; repassez ensuite sur « Détection automatique« ».
  • Paramètres → Exporter les journaux de consentement (CSV) — vérifiez que la colonne « Juridiction » est correctement renseignée pour vos entrées de test.
  • Si vous utilisez le mode de consentement Google « Avancé » : ouvrez Google Tag Manager pour ce client et vérifiez que chaque balise utilise un modèle officiel de Google (ou dispose de paramètres de consentement configurés) — le plugin ne peut pas effectuer cette vérification pour vous.