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

Astuces

Un badge « réponse en moins de 24h » calculé depuis le dernier commentaire

Afficher automatiquement un indicateur de réactivité du support sur les fiches produit d'un site e-commerce, calculé depuis l'historique des commentaires.

Par WordPress Développement • 25 juin 2021 • 4 min de lecture • Aucun commentaire
Un badge « réponse en moins de 24h » calculé depuis le dernier commentaire

Vingt-quatre heures : c’est le délai que l’équipe support d’un site e-commerce de pièces détachées voulait afficher publiquement sur ses fiches produit, comme argument de réassurance face à des concurrents dont les questions clients restaient parfois sans réponse pendant des jours. Encore fallait-il que ce chiffre soit vrai, mesuré, et pas simplement affirmé dans un encart marketing statique.

Le site utilisait déjà les commentaires natifs de WordPress comme système de questions-réponses sur chaque fiche produit, l’équipe support répondant directement en commentaire de réponse. Toute la matière première pour calculer un vrai indicateur de réactivité était donc déjà en base, sans qu’il soit nécessaire d’ajouter le moindre plugin de support client.

Repérer les paires question-réponse

Un commentaire « question » est un commentaire de premier niveau (comment_parent à zéro) posté par un visiteur, et sa « réponse » est le commentaire enfant posté par un compte identifié comme membre de l’équipe support — repéré ici par une capacité personnalisée repondre_support plutôt que par un rôle nommé, pour rester compatible si l’équipe change de composition.

function wpm_delai_reponse_support( $product_id ) {
    $questions = get_comments( array(
        'post_id' => $product_id,
        'parent'  => 0,
        'status'  => 'approve',
    ) );

    $delais = array();

    foreach ( $questions as $question ) {
        $reponses = get_comments( array(
            'post_id' => $product_id,
            'parent'  => $question->comment_ID,
            'status'  => 'approve',
            'orderby' => 'comment_date',
            'order'   => 'ASC',
            'number'  => 1,
        ) );

        if ( empty( $reponses ) ) {
            continue;
        }

        $reponse = $reponses[0];
        if ( ! user_can( $reponse->user_id, 'repondre_support' ) ) {
            continue;
        }

        $delais[] = strtotime( $reponse->comment_date ) - strtotime( $question->comment_date );
    }

    return $delais;
}

Calculer une moyenne glissante par produit

Sur une fiche produit récente avec peu de questions, une seule réponse tardive suffirait à fausser complètement la moyenne. Le calcul se limite donc aux dix dernières paires question-réponse, et le badge ne s’affiche que si au moins trois paires sont disponibles — en dessous, l’échantillon est jugé trop faible pour être représentatif.

L'essentiel à retenir : Calcul basé sur les commentaires déjà en base ; Aucune extension de support client ajoutée ; Badge recalculé uniquement à chaque nouvelle réponse
  • Moins de 3 paires question-réponse : badge masqué
  • Moyenne sur les 10 dernières paires inférieure à 24 heures : badge affiché
  • Moyenne supérieure à 24 heures : aucun badge, sans message négatif affiché

Ce dernier point a fait débat en interne : fallait-il afficher un badge « réponse sous 48h » pour les produits moins réactifs ? La décision retenue a été de rester silencieux plutôt que d’exposer une statistique moins flatteuse — un choix assumé de communication, pas une contrainte technique.

Recalcul et mise en cache

Le calcul complet, exécuté à chaque affichage de fiche produit, resterait trop coûteux sur un catalogue de plusieurs centaines de références consultées simultanément. Le résultat est donc stocké en meta produit, recalculé uniquement lors de l’ajout d’un nouveau commentaire de réponse via le hook comment_post, plutôt qu’à chaque visite.

Ce que le badge ne garantit pas

Un badge basé sur une moyenne historique ne garantit aucune réponse dans les 24 heures pour la prochaine question posée — c’est un indicateur de tendance, pas un engagement contractuel. Cette nuance a été explicitée dans les mentions de réassurance affichées à côté du badge, pour éviter toute ambiguïté commerciale.

Étendre le calcul à plusieurs membres de l’équipe

Sur les fiches produit les plus consultées, plusieurs personnes de l’équipe support peuvent répondre à tour de rôle selon les disponibilités. Le calcul ne distingue volontairement pas qui a répondu : seule compte la première réponse valide après la question, quel que soit son auteur parmi les comptes disposant de la capacité repondre_support. Un badge par agent aurait ajouté une couche de complexité sans réel bénéfice pour le visiteur, qui ne cherche qu’une assurance globale de réactivité, pas un classement interne de l’équipe.

Cette décision a aussi simplifié la maintenance : si un nouveau membre rejoint l’équipe support, il lui suffit de recevoir la capacité appropriée pour que ses réponses comptent immédiatement dans le calcul, sans toucher au code du badge lui-même.

En résumé

Un badge de réactivité calculé depuis l’historique réel des commentaires reste plus honnête — et plus simple à maintenir — qu’une affirmation marketing figée. Le vrai travail se situe dans le choix du seuil d’affichage et la taille minimale de l’échantillon, bien plus que dans la requête elle-même.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

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

Voir tous ses articles

Dans la même veine

À lire aussi