Le WordPress d'aujourd'hui, décodé pour les développeurs

Tips

Injecter la notice légale obligatoire sur chaque fiche d’un produit de mutuelle

Que se passe-t-il le jour où une mention réglementaire manque sur une seule fiche produit, oubliée lors d'une saisie manuelle ? Un filtre sur the_content injecte automatiquement la notice sur chaque contrat, sans dépendre de la vigilance de chacun.

Par Clément Hadrot • 20 juillet 2025 • 4 min de lecture • Aucun commentaire
Injecter la notice légale obligatoire sur chaque fiche d'un produit de mutuelle

Un seul réglage centralisé garantit que la notice légale reste identique sur toutes les fiches — condition nécessaire sur un site qui présente plusieurs dizaines de contrats de mutuelle, où il suffit d’une nouvelle fiche créée un jour de forte charge, et d’un copier-coller oublié depuis un modèle interne, pour qu’une mention réglementaire obligatoire passe à la trappe sur une seule fiche produit.

La solution la plus fiable ne repose jamais sur la vigilance humaine répétée à chaque création de fiche, mais sur une injection automatique de la notice via un filtre appliqué au contenu, garantissant que la mention apparaît identiquement sur toutes les fiches concernées, sans exception possible.

Le texte de la notice, potentiellement amené à évoluer selon les évolutions réglementaires, ne doit jamais être dupliqué dans chaque fiche produit. Un réglage unique, modifiable depuis une page d’options dédiée, sert de source unique de vérité :

register_setting( 'wpm_mutuelle', 'wpm_texte_notice_legale', array(
    'type'    => 'string',
    'default' => '',
) );

Injecter la notice via the_content

L'essentiel à retenir : La notice légale s'injecte automatiquement, sans saisie manuelle répétée ; Le filtre s'applique uniquement au type de contenu concerné ; Le texte légal reste centralisé dans un seul réglage modifiable
add_filter( 'the_content', 'wpm_ajouter_notice_legale_produit' );

function wpm_ajouter_notice_legale_produit( $contenu ) {
    if ( ! is_singular( 'produit_mutuelle' ) || ! in_the_loop() || ! is_main_query() ) {
        return $contenu;
    }

    $notice = get_option( 'wpm_texte_notice_legale', '' );

    if ( empty( $notice ) ) {
        return $contenu;
    }

    $bloc_notice = '<p class="notice-legale">' . wp_kses_post( $notice ) . '</p>';

    return $contenu . $bloc_notice;
}

Pourquoi ces trois vérifications avant d’injecter

Les conditions is_singular( 'produit_mutuelle' ), in_the_loop() et is_main_query() évitent que la notice n’apparaisse par erreur dans un widget affichant un extrait de contenu, dans une recherche interne, ou sur un type de contenu qui n’est pas soumis à cette obligation réglementaire. Sans ces vérifications, un filtre sur the_content peut s’exécuter dans des contextes totalement inattendus, avec le risque d’afficher deux fois la même notice sur une même page.

Garder une trace de la version affichée

En cas de contrôle réglementaire, il peut être utile de prouver qu’une version antérieure du texte légal était bien affichée à une date donnée. Un enregistrement de version du texte, horodaté à chaque modification, répond à ce besoin sans complexité excessive :

add_action( 'update_option_wpm_texte_notice_legale', 'wpm_archiver_ancienne_notice', 10, 2 );

function wpm_archiver_ancienne_notice( $ancienne_valeur, $nouvelle_valeur ) {
    $historique   = get_option( 'wpm_historique_notices', array() );
    $historique[] = array(
        'texte' => $ancienne_valeur,
        'date'  => current_time( 'mysql' ),
    );

    update_option( 'wpm_historique_notices', $historique );
}

Adapter la notice selon la catégorie de produit

  • Certains produits de mutuelle nécessitent une mention complémentaire, par exemple sur un délai de carence spécifique.
  • Un second champ optionnel, propre à chaque fiche, peut s’ajouter à la notice générale sans la remplacer.
  • La fonction d’injection concatène alors la notice générale et la mention spécifique, dans un ordre fixe et prévisible.
$mention_specifique = get_post_meta( get_the_ID(), 'mention_complementaire', true );

if ( $mention_specifique ) {
    $bloc_notice .= '<p class="notice-legale-specifique">' . wp_kses_post( $mention_specifique ) . '</p>';
}

Conseil maison : ne laissez jamais un texte à valeur réglementaire dépendre d’une saisie répétée par plusieurs personnes. Centraliser la source du texte n’est pas seulement plus pratique, c’est aussi la seule façon de garantir une cohérence totale entre toutes les fiches concernées.

Ce que cette technique ne garantit pas

Elle ne garantit pas que le texte légal saisi dans le réglage est lui-même conforme à la réglementation en vigueur : cette responsabilité reste entièrement humaine et juridique, hors du périmètre du développement. Le rôle de cette automatisation se limite strictement à garantir que le texte validé s’affiche de façon systématique et identique sur chaque fiche concernée.

En résumé

Un filtre unique sur the_content, couplé à un réglage centralisé du texte légal, élimine le risque d’oubli lié à une saisie manuelle répétée sur chaque fiche produit. Cette approche garantit une conformité d’affichage constante, tout en restant simple à mettre à jour le jour où le texte réglementaire doit évoluer.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi