WP Manifestindependent plugin directory
manifest / ecommerce / genius-reviews

Genius Reviews

Genius Reviews — CSV review import, WooCommerce product display, SEO JSON-LD

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/martinfeuillet/genius-reviews/archive/refs/heads/master.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

Importez, affichez et optimisez vos avis clients WooCommerce avec JSON-LD SEO-ready.

Description

Genius Reviews permet d’importer vos avis clients depuis un fichier CSV et d’afficher automatiquement les grilles ou carrousels d’avis sur vos fiches produits WooCommerce.

Les avis sont stockés en tant que custom post type genius_review et enrichis de données JSON-LD pour le référencement.

Fonctionnalités principales :

  • 🧾 Import CSV par lots, avec barre de progression et déduplication automatique
  • ⭐ Grille, carrousel, badge et résumé (shortcodes, bloc Gutenberg et Elementor)
  • 🧠 Tri par note, date, etc.
  • 📈 Génération automatique de aggregateRating pour Google, avec fusion dans le schéma RankMath
  • 🗂️ Schéma Product agrégé et mis en cache pour les catégories et attributs produits
  • 🔌 API REST de lecture et de mise à jour des avis, protégée par clé
  • 🎨 Couleurs de marque et couleurs d’étoiles personnalisables
  • 🌍 Compatible multisite
  • 🗣️ Traductions : Français, Anglais (US / GB / IE), Espagnol, Italien, Allemand, Néerlandais, Polonais, Suédois

Les mises à jour sont distribuées directement depuis le dépôt GitHub du plugin (branche master).

Installation

  1. Téléversez le dossier genius-reviews dans le répertoire /wp-content/plugins/.
  2. Activez le plugin depuis le menu Extensions de WordPress. WooCommerce doit être actif : sans lui, le plugin refuse de s’activer.
  3. Allez dans Genius Reviews → Options & Import pour configurer votre import et l’apparence.
  4. Utilisez le shortcode [genius_reviews_grid] ou [genius_reviews_slider] dans vos pages produits.

À l’activation, le plugin enregistre le type de contenu genius_review, crée la table de cache des schémas, désactive les avis natifs WooCommerce et crée les options par défaut. En cas d’activation réseau sur un multisite, cette opération est répétée sur chaque site.

Réglages

Page Genius Reviews → Options & Import :

Affichage automatique

  • Afficher les avis sur la fiche produit (grille placée après le contenu principal)
  • Afficher le badge sur la fiche produit
  • Afficher le badge sur les pages boutique et catégories
  • Afficher les avis globaux du site lorsqu’un produit n’a aucun avis

Apparence

  • Couleur de marque
  • Couleur des étoiles, couleur du symbole interne, couleur des étoiles inactives
  • Une couleur par note (de 1 à 5 étoiles)

Maintenance

  • Fréquence de recalcul du cache des schémas catégories / attributs
  • Synchronisation manuelle des notes produits
  • Rafraîchissement ou purge du cache des schémas
  • Génération de la clé d’API REST

Import CSV

L’import se fait depuis Genius Reviews → Options & Import, section Import CSV. Le fichier est traité par lots successifs en AJAX, ce qui permet d’importer de gros volumes sans dépassement de délai, avec une barre de progression et un récapitulatif par produit (ajoutés / mis à jour / ignorés / moyenne / total).

Colonnes attendues :

title, body, rating, review_date, source, curated, reviewer_name, reviewer_email, product_id, product_handle, reply, reply_date, picture_urls, ip_address, location

Points importants :

  • Le séparateur (, ou ;) est détecté automatiquement.
  • Chaque avis reçoit un identifiant unique calculé à partir de l’e-mail, du produit, de la date et du début du texte. Réimporter le même fichier met à jour les avis existants au lieu de les dupliquer.
  • L’adresse e-mail n’est jamais stockée en clair : seule une empreinte SHA-256 est conservée (RGPD).
  • Un product_id vide ou égal à all-reviews-page crée un avis « boutique », non rattaché à un produit.
  • Les images listées dans picture_urls sont téléchargées dans la médiathèque ; la première devient l’image mise en avant de l’avis.
  • En fin d’import, la moyenne et le nombre d’avis sont recalculés pour chaque produit concerné, en ne comptant que les avis dont curated vaut ok.

Les avis peuvent aussi être créés ou corrigés à la main depuis le menu Genius Reviews, où la liste propose des colonnes triables (Product ID, Titre, Note, Validation) et des filtres par note et par validation.

API REST

Base : /wp-json/genius-reviews/v1/reviews

  • GET : liste publique des avis publiés, avec pagination optionnelle (per_page, page).
  • POST : mise à jour d’un ou plusieurs avis existants. Nécessite la clé générée dans la page d’options, envoyée dans l’en-tête X-GR-Api-Key. Tant qu’aucune clé n’est générée, l’écriture est désactivée.

L’écriture est en mise à jour uniquement : chaque élément doit référencer un avis existant par son id. Les données personnelles (IP, empreinte e-mail, localisation) ne sont pas modifiables par l’API. La documentation complète se trouve dans le fichier API.md du plugin.

Référencement

Le plugin génère le JSON-LD des avis et de la note agrégée. Lorsque RankMath est actif, les notes sont fusionnées dans son schéma Product pour éviter les doublons ; sinon le schéma est émis par le plugin lui-même.

Un schéma Product agrégé (avec AggregateOffer et aggregateRating) est également produit pour les catégories WooCommerce et les attributs produits pa_*. Il est mis en cache, recalculé par tâche planifiée, et injecté uniquement si au moins 3 avis sont disponibles.

Shortcodes

Grille d'avis

[genius_reviews_grid]

Affiche les avis du produit courant sur une fiche produit WooCommerce.

[genius_reviews_grid product_id="123" limit="6" sort="date_desc"]

Affiche les avis d'un produit précis.

Slider d'avis

[genius_reviews_slider limit="12" sort="rating_desc"]

Affiche une sélection globale d'avis curés.

[genius_reviews_slider limit="12" sort="rating_desc" mode="compact"]

Affiche le slider en mode compact.

[genius_reviews_slider scope="category" limit="12" sort="rating_desc"]

Affiche les avis produits liés à la catégorie WooCommerce courante.

[genius_reviews_slider scope="category" term_id="12" taxonomy="product_cat" limit="12" sort="rating_desc"]

Affiche les avis produits d'une catégorie précise.

Le slider scope="category" calcule la moyenne et le nombre d'avis sur les produits de la catégorie. Si la catégorie contient 1 ou 2 avis, le slider complète l'affichage avec des avis produits pour atteindre 3 cartes, sans les intégrer aux statistiques catégorie. Si la catégorie ne contient aucun avis, ou si le shortcode est utilisé sur la page boutique sans catégorie courante, le slider affiche des avis produits globaux et utilise les statistiques des avis produits globaux.

Badge d'avis

[genius_reviews_badge]

Affiche le badge du produit courant.

[genius_reviews_badge product_id="123"]

Affiche le badge d'un produit précis.

[genius_reviews_badge scope="category" mode="compact_rating"]

Affiche le badge de la catégorie WooCommerce courante.

[genius_reviews_badge scope="category" term_id="12" taxonomy="product_cat" mode="compact_rating"]

Affiche le badge d'une catégorie précise.

Intégration automatique sur la boutique et les catégories

Pour afficher automatiquement le slider après la grille produits WooCommerce sur la boutique et les catégories, ajoutez ce hook dans le functions.php du thème enfant ou via un plugin de snippets :

add_action('woocommerce_after_shop_loop', function () {
    $is_shop_page = function_exists('is_shop') && is_shop();
    $is_category_page = function_exists('is_product_category') && is_product_category();

    if (!$is_shop_page && !$is_category_page) {
        return;
    }

    $term = get_queried_object();
    if (!$term instanceof WP_Term) {
        echo do_shortcode('[genius_reviews_slider scope="category" limit="12" sort="rating_desc"]');
        return;
    }

    echo do_shortcode(sprintf(
        '[genius_reviews_slider scope="category" term_id="%d" taxonomy="%s" limit="12" sort="rating_desc"]',
        (int) $term->term_id,
        esc_attr($term->taxonomy)
    ));
}, 20);

Pour l'afficher avant la grille produits, utilisez le hook woocommerce_before_shop_loop.

Frequently Asked Questions

Où apparaissent les avis ?

Les avis sont visibles dans la section “Avis de nos clients” en bas de chaque fiche produit, ou via les shortcodes.

Puis-je personnaliser les couleurs ?

Oui, une couleur principale est configurable dans la page d’options du plugin.

Est-ce compatible avec Elementor ?

Oui, un widget “Genius Reviews” est inclus, ainsi qu’un bloc Gutenberg.

Les avis sont-ils générés automatiquement ?

Non. Le plugin n’invente aucun avis : il importe ceux que vous fournissez via un fichier CSV, ou que vous saisissez manuellement. L’API REST permet de mettre à jour des avis existants, jamais d’en créer.

Pourquoi certains avis importés ne s’affichent-ils pas ?

Seuls les avis dont la colonne curated vaut ok sont comptés dans les moyennes et affichés dans les badges. Vous pouvez modifier ce statut depuis la liste des avis dans l’administration.

Que se passe-t-il si je réimporte le même fichier ?

Les avis déjà présents sont mis à jour, pas dupliqués : la correspondance se fait sur une empreinte calculée à partir de l’e-mail, du produit, de la date et du texte de l’avis.

Est-ce compatible avec RankMath ?

Oui. Si RankMath est actif, les notes Genius Reviews sont fusionnées dans son schéma Product afin d’éviter les données structurées en double.

Screenshots

  1. Interface d’import CSV
  2. Grille d’avis sur fiche produit
  3. Carrousel d’avis
  4. Réglages d’apparence

Changelog

1.3.7

  • Repli de locale : les sites tournant sur une variante régionale sans catalogue dédié (de_AT, de_CH, en_AU, nl_BE, es_MX…) chargent désormais le catalogue de leur langue au lieu d'afficher les chaînes source en français.
  • Chargement du domaine de traduction déplacé de plugins_loaded vers init (priorité 1), conformément à WordPress 6.7+.

1.3.6

  • Régénération du fichier .pot (145 -> 161 chaînes) : toutes les chaînes du code sont désormais traduisibles.
  • Fusion du nouveau .pot dans les 9 fichiers .po et recompilation des .mo.
  • Traduction du suffixe « avis vérifiés » affiché côté boutique dans les 9 langues : il restait en français sur toutes les boutiques non francophones.
  • Correction des marqueurs %1$schemas / %2$skipped de la notice de recalcul des schémas, qui s'affichaient tels quels dans l'admin.

1.3.3

  • Remplacement de la traduction en_IE par en_GB.

1.3.2

  • Mise à jour de la traduction anglaise (Irlande).

1.3.1

  • Ajout du point d'entrée POST /reviews permettant de mettre à jour et de traduire les avis à distance.
  • Génération d'une clé d'API dans la page Options & Import, envoyée via l'en-tête X-GR-Api-Key.
  • Documentation de l'API dans le fichier API.md.

1.3.0

  • Version de test interne.

1.2.9

  • Mise à jour du système de vérification des mises à jour.

1.2.8

  • Ajout du point d'entrée GET /wp-json/genius-reviews/v1/reviews pour lister les avis publiés.

1.2.7

  • Ajustement des couleurs des avis.

1.2.6

  • Correction d'un avertissement PHP.

1.2.5

  • Correction du double affichage des données enrichies RankMath.

1.2.4

  • Ajout du JSON-LD produit complémentaire.
  • Passage à une numérotation de version à trois chiffres.
  • Application du standard de codage WordPress et bascule de l'update checker vers le nouveau dépôt.

1.2.2.6

  • Correction de l'affichage du slider scope="category" sur la page boutique quand aucune catégorie courante n'est disponible.
  • Mise à jour du hook d'intégration WooCommerce pour couvrir la boutique et les catégories produits.

1.2.2.5

  • Complétion des traductions admin dans toutes les langues disponibles.
  • Correction du fallback du slider catégorie quand la catégorie ne contient aucun avis.
  • Fallback du slider scope="category" vers les avis produits globaux sur la page boutique.

1.2.2.4

  • Ajout du scope="category" sur le shortcode slider pour afficher les avis produits de la catégorie WooCommerce courante ou d'une catégorie précise.
  • Calcul des statistiques du slider catégorie sur les avis produits de la catégorie, avec appoint d'avis produits uniquement pour compléter l'affichage.
  • Fallback du slider catégorie vers les avis produits si la catégorie ne contient aucun avis.

1.2.2.3

  • Ajout des couleurs personnalisables pour les étoiles par note, l’état inactif et le symbole interne.
  • Centralisation du SVG des étoiles pour tous les shortcodes.
  • Réorganisation de la page Options & Import.

1.2.2.1

  • Ajout scope category pour le shortcode badge.
  • Ajout scope category pour le shortcode slider, avec appoint d'avis produits si moins de 3 avis catégorie sont disponibles.

1.2.2

  • Ajout d'un cache JSON-LD pour les pages catégories WooCommerce et attributs produits (pa_*) avec recalcul par cron.
  • Génération d'un schéma Product agrégé pour les catégories et attributs avec AggregateOffer et aggregateRating calculé depuis les avis Genius Reviews.
  • Calcul des notes catégories/attributs via moyenne pondérée des metas _gr_avg_rating et _gr_review_count.
  • Injection du schéma catégories/attributs uniquement si au moins 3 avis sont disponibles.
  • Fusion des notes Genius Reviews dans le schéma Product RankMath pour éviter les doublons sur les fiches produits.

1.2.1.13

  • Correction style badge et fix génération données enrichies compatible rank math

1.2.1.12

  • Suppression "Lato" & remplacement transient par user meta temporaire pour l'import admin

1.2.1.11

  • Fix taille svg compatible FF

1.2.1.10

  • Ajout du mode compact sur le shortcode slider via mode="compact" (colonne, gap réduit, 1 slide par vue) + centrage du bloc note en compact
  • Admin genius_review : nouvelles colonnes Product ID, Title, Note, Validation (curated), colonnes triables
  • Admin genius_review : Product ID cliquable vers l’édition de l’avis + filtres par note et par validation
  • Page gr-options : ajout de l’exemple shortcode compact dans la liste des shortcodes
  • Affichage auto des avis sur fiche produit déplacé pour sortir du layout en colonnes et se placer juste après le contenu principal
  • Badge aligné sur les autres blocs : calcul basé uniquement sur les avis curated = ok

1.2.1.9

  • Fix remove_spacing all reviews new version
  • Shortcode summary

1.2.1.7

  • Fix badge

1.2.1.6

  • Parametre sans espace pour shortcode reviews grid et affichage badge use_count_global quand option active

1.2.1.5

  • Option affiché tous les avis du sites sur FP si le produit n'a pas d'avis

1.2.1.4

  • Mise à jour système de purge

1.2.1.3

  • Suppression du CSS inutilisé à l'upload

1.2.1.2

  • Fix flush WP rocket

1.2.1.1

  • Scope Prefix post css pour éviter les conflits

1.2.1

  • Remplacement swiper par splide , suppression des style inline pour fichier css public

1.2.0.5

  • Appel Swiper CDN

1.2.0.4

  • Ajout slug feedback PL et NL

1.2.0.3

  • Correction nom de fichier de trad suédois

1.2.0.2

  • Patch synchronisation nouveaux avis

1.2.0.1

  • Correction url feedback pour reviews grid

1.2.0

  • Gestion de plusieurs image + Allègement du plugin + exclusions de répertoires

1.1.9

  • Champs reviews éditable

1.1.8.5

  • Fix swiper pagination css + build

1.1.8.4

  • Fix swiper pagination css

1.1.8.3

  • Fix spanish trad

1.1.8.2

  • CSS ajustements

1.1.8

  • lien questionnaire fb internationaux
  • Fix traduction
  • Couleur hex dans la page d'options

1.1.6

  • Fix force allow csv upload

1.1.4

  • Fix traduction php-format

1.1.2

  • Ajout du titre affiché

1.1.0

  • Output json avis généraux
  • MAJ traductions

1.0.3

  • Grille avis généraux

1.0.2

  • Affichage du badge
  • Gestion multisite

1.0.1

  • Traductions

1.0.0

  • Première version publique
  • Import CSV
  • Grille et carrousel d’avis
  • JSON-LD automatique

Upgrade Notice

1.3.1

Ajoute l’écriture via l’API REST. Pensez à générer une clé dans Options & Import : sans clé, l’écriture reste désactivée.

1.2.4

Passage à une numérotation en trois chiffres et changement du dépôt de mises à jour.

1.0.0

Version initiale stable.