PWA Google Reviews Connector (version 2.0)

Nom

PWA Google Reviews Connector

Version

2.0

Description générale

Le plugin PWA Google Reviews Connector est une solution WordPress qui synchronise automatiquement les avis Google Maps avec le plugin Widgets for Google Reviews (slug : wp-reviews-plugin-for-google). Il récupère les avis via une API REST personnalisée hébergée sur un serveur distant (https://prestigeweb.agency), stocke les données dans une table WordPress personnalisée, et met à jour les métadonnées nécessaires pour l »affichage des avis sur le site. Ce plugin est conçu pour fonctionner en tandem avec Widgets for Google Reviews, en s »appuyant sur ses données de configuration pour une intégration transparente.

Fonctionnalités principales

1. Récupération des avis Google Maps

  • Source : Les avis sont récupérés via une API REST personnalisée (https://prestigeweb.agency/wp-json/pwa-grc/v1/google-reviews) qui agit comme un intermédiaire entre le site WordPress (Site A) et l »API Apify (https://api.apify.com/v2/acts/compass~google-maps-reviews-scraper/run-sync-get-dataset-items).
  • Données récupérées : Pour chaque avis, le plugin extrait :
    • Nom de l »utilisateur (name).
    • Texte de l »avis (text).
    • Note en étoiles (stars, de 1 à 5).
    • Date de publication (publishedAtDate).
    • ID unique de l »avis (reviewId).
    • Photo de l »utilisateur (reviewerPhotoUrl, si disponible).
    • Réponse du propriétaire (responseFromOwnerText, si disponible).
  • Paramètres :
    • Place ID : Extrait automatiquement de l »option trustindex-google-page-details (champ id, par exemple, ChIJK_o4XSJvyRIRFlg7Gnqflw8).
    • Limite d »avis : Configurable via le champ pwagrc_reviews_limit (par défaut : 20).
    • Langue : Fixée à fr (français).
    • Données personnelles : Activées (personal_data: true) pour inclure les noms et photos des utilisateurs.

2. Stockage des avis

  • Tableau : Les avis sont stockés dans la table {prefix}trustindex_google_reviews (par exemple, 2XYbI_trustindex_google_reviews).
  • Structure de la table :
    • id : Identifiant unique (auto-incrémenté).
    • hidden : Indicateur de visibilité (0 pour visible).
    • user : Nom de l »utilisateur (limité à 255 caractères).
    • user_photo : URL de la photo de l »utilisateur.
    • text : Texte de l »avis.
    • rating : Note (1 à 5, type float).
    • highlight : Champ pour surlignage (non utilisé, null).
    • date : Date de publication (format YYYY-MM-DD).
    • reviewId : ID unique de l »avis Google.
    • reply : Réponse du propriétaire (si disponible).
  • Comportement :
    • Si un avis avec le même reviewId existe, il est mis à jour.
    • Sinon, un nouvel avis est inséré avec un id incrémenté (basé sur MAX(id) + 1).

3. Mise à jour des métadonnées

  • Option WordPress : Le plugin met à jour l »option trustindex-google-page-details dans la table {prefix}options.
  • Champs mis à jour :
    • rating_number : Nombre total d »avis dans la table (par exemple, "17").
    • rating_numbers : Répartition des notes par étoile (par exemple, a:5:{i:1;i:0;i:2;i:0;i:3;i:0;i:4;i:0;i:5;i:17;}).
    • rating_score : Moyenne des notes, arrondie au supérieur (par exemple, "5" si la moyenne est 5.0).
    • timestamp : Timestamp Unix actuel au moment de la mise à jour (par exemple, 1753021127).
  • Champs préservés :
    • id, name, avatar_url, write_review_url, address : Non modifiés, car fournis par Widgets for Google Reviews.
    • rating_numbers_last : Non modifié, géré par Widgets for Google Reviews (par exemple, a:5:{i:1;i:0;i:2;i:0;i:3;i:0;i:4;i:0;i:5;i:10;}).
  • Format : L »option est stockée sous forme sérialisée (par exemple, a:10:{s:2:"id";s:27:"ChIJK_o4XSJvyRIRFlg7Gnqflw8";...}).

4. Interface d »administration

  • Page de réglages : Accessible via Réglages > PWA Google Reviews dans l »admin WordPress.
  • Champs :
    • Clé API (pwagrc_api_key) : Champ texte pour entrer la clé API (actuellement utilisée comme jeton sans validation, en attente de l »intégration EDD dans la Phase 2).
    • Google Place ID (pwagrc_place_id) : Champ en lecture seule (readonly) affichant :
      • Le Place ID extrait de trustindex-google-page-details (par exemple, ChIJK_o4XSJvyRIRFlg7Gnqflw8) si disponible.
      • Un message d »erreur si indisponible : "Veuillez configurer Widgets for Google Reviews et renseigner votre compte Google My Business."
    • Limite d »avis par requête (pwagrc_reviews_limit) : Champ numérique pour définir le nombre maximum d »avis à récupérer (par défaut : 20).
    • Intervalle Cron (pwagrc_cron_interval) : Champ numérique pour définir la fréquence des exécutions automatiques (en heures, par défaut : 24).
  • Action manuelle : Bouton Lancer la récupération des avis pour déclencher la récupération immédiatement.
  • Message d »avertissement : Si Widgets for Google Reviews n »est pas activé ou si trustindex-google-page-details est absente, affiche :
    Erreur : Le plugin Widgets for Google Reviews doit être installé et configuré pour utiliser PWA Google Reviews Connector.

5. Automatisation via Cron

  • Tâche Cron : pwagrc_reviews_cron_event, planifiée avec un intervalle personnalisé (pwagrc_cron_interval heures).
  • Comportement : Exécute la fonction pwagrc_reviews_fetch_and_store automatiquement pour synchroniser les avis.
  • Gestion : La tâche est créée lors de l »activation du plugin et supprimée lors de la désactivation.

6. Dépendance avec Widgets for Google Reviews

  • En-tête : Déclare une dépendance explicite via Requires Plugins: wp-reviews-plugin-for-google.
  • Vérification : Vérifie si le plugin est activé et si trustindex-google-page-details contient un Place ID valide avant toute récupération.
  • Intégration : Utilise l »option trustindex-google-page-details pour extraire le Place ID, évitant la saisie manuelle.

7. Communication avec le Site B

  • API REST : Le plugin envoie une requête POST à https://prestigeweb.agency/wp-json/pwa-grc/v1/google-reviews avec :
    {
      "api_key": "valeur_de_pwagrc_api_key",
      "place_id": "ChIJK_o4XSJvyRIRFlg7Gnqflw8",
      "max_reviews": 20,
      "language": "fr",
      "personal_data": true
    }
            
  • Réponse : Reçoit une liste d »avis au format JSON identique à celui de l »API Apify.
  • Site B : Un plugin (wp-content/plugins/pwagrc-api/pwagrc-api.php) traite la requête, appelle l »API Apify avec une clé stockée en dur, et retourne les avis.

8. Journalisation

  • Fichier de log : wp-content/plugins/pwa-google-reviews-connector/pwagrc_reviews.log.
  • Contenu :
    • Début de la récupération.
    • Vérifications (clé API, Place ID, table existante).
    • Requête envoyée à l »API du Site B (URL, corps JSON).
    • Réponse reçue (code HTTP, corps complet).
    • Traitement des avis (insertion/mise à jour, reviewId).
    • Mise à jour de l »option trustindex-google-page-details (avec détails sur rating_number, rating_numbers, rating_score, timestamp).
    • Résultat final (nombre d »avis insérés/mis à jour).
  • Site B : Logs dans wp-content/pwa-api/pwagrc/api.log pour :
    • Requête reçue.
    • Requête envoyée à Apify.
    • Réponse d »Apify (code HTTP, corps partiel).
    • Erreurs ou succès.

9. Sécurité et conformité

  • Nonce : Utilise des nonces WordPress (pwagrc_reviews_save_settings, pwagrc_reviews_manual_run) pour sécuriser les formulaires.
  • Validation : Sanitise les entrées (sanitize_text_field, absint) et valide le Place ID avec une expression régulière (/^ChIJ[A-Za-z0-9_-]+/).
  • RGPD : Les champs user et user_photo doivent être conformes au RGPD (non encore implémenté, à vérifier).

10. Installation sur le même site

  • Le plugin peut être installé sur https://prestigeweb.agency, où l »API (/wp-json/pwa-grc/v1/google-reviews) est également hébergée, car WordPress gère les requêtes internes via wp_remote_post.

Flux opérationnel

  1. L »utilisateur configure Widgets for Google Reviews avec son compte Google My Business, ce qui remplit trustindex-google-page-details.
  2. L »utilisateur active PWA Google Reviews Connector et entre une clé API (actuellement un jeton test, par exemple, test-api-key).
  3. Le plugin extrait le Place ID de trustindex-google-page-details et l »affiche en lecture seule.
  4. Lors d »une exécution manuelle ou cron :
    • Envoie une requête POST à l »API du Site B.
    • Reçoit les avis, les insère/met à jour dans {prefix}trustindex_google_reviews.
    • Met à jour trustindex-google-page-details avec les nouvelles métadonnées.
  5. Les avis sont affichés sur le site via Widgets for Google Reviews (par exemple, « Basée sur 17 avis »).

Explications sur les paiements récurrents (anglais) ICI ou version traduite en français ICI.

Vous devez vous connecter pour soumettre un avis.