v1.2.1 ✨ Dernière
📅 01 avril 2026
[1.2.1] - 1 Avril 2026
### 🐛 Fix: Synchronisation complète des metas `lvp_verified` et `identity_verified`
#### 🇫🇷 Français
Correction d'un bug critique d'incohérence entre les metas utilisateur `lvp_verified` (meta LVP) et `identity_verified` (meta native Listeo).
**Problème :** La méthode `is_user_verified()` dans `class-listeo-integration.php` vérifiait uniquement `identity_verified`, mais le système d'approbation n'écrivait que dans `lvp_verified`. Les restrictions Listeo (message/booking) ne se débloquaient jamais après vérification.
**Corrections apportées (7 fichiers) :**
- `is_user_verified()` vérifie maintenant les **deux** metas (`lvp_verified` OU `identity_verified`) pour une compatibilité maximale
- **5 points d'approbation** écrivent désormais les deux metas simultanément :
- `class-admin.php` — approbation manuelle admin
- `class-api-verification.php` — webhooks Onfido, Jumio et Veriff
- `class-verification-handler.php` — soumission de vérification
- **6 points de révocation/expiration** suppriment désormais les deux metas :
- `class-admin.php` — révocation admin
- `class-badges.php` — 4 cas d'expiration (meta, DB, statut, date document)
- `listeo-verify-pro.php` — cron d'expiration automatique
- `uninstall.php` — nettoyage des deux metas à la désinstallation
### 🌟 Nouveau : Rôles applicables configurables
#### 🇫🇷 Français
Ajout d'un champ **multi-select** dans les paramètres Listeo permettant de choisir les rôles WordPress auxquels le plugin s'applique.
**Avant :** Le plugin était codé en dur pour `owner`, `seller` et `guest` uniquement.
**Maintenant :** L'administrateur peut sélectionner n'importe quel rôle WordPress (natif ou custom).
**Fonctionnement :**
- **Paramètres → onglet Listeo → "Rôles applicables"** : multi-select affichant tous les rôles WordPress du site
- Les rôles sélectionnés voient le menu "Vérification" dans le dashboard et sont soumis aux restrictions (message/booking)
- Les rôles NON sélectionnés ne voient rien et ne sont jamais restreints
- Les **administrateurs sont toujours exclus** des restrictions
- Valeur par défaut : `owner`, `seller`, `guest` (rétro-compatible)
**Fichiers modifiés :**
- `listeo-verify-pro.php` — méthode statique `Listeo_Verify_Pro::is_user_role_applicable()`
- `class-admin.php` — multi-select dans les settings + sauvegarde `lvp_applicable_roles`
- `class-frontend.php` — menu vérification, notice et shortcode `[lvp_verification_page]` basés sur les rôles configurés
- `class-listeo-integration.php` — restrictions message/booking Listeo limitées aux rôles configurés
- `class-woocommerce.php` — **12 points de contrôle** ajoutés :
- Menu "Vérification" dans Mon Compte WooCommerce
- Badge vérifié dans Mon Compte
- Blocage checkout (classique + Gutenberg Blocks + Store API)
- Notice checkout
- Filtrage/blocage téléchargements (3 hooks)
- Permission téléchargement
- Protection contenu (produits/pages/posts)
---
#### 🇬🇧 English
Added a **multi-select** field in Listeo settings to choose which WordPress roles the plugin applies to.
**Before:** Hardcoded to `owner`, `seller` and `guest` only.
**Now:** Admin can select any WordPress role (native or custom).
**How it works:**
- **Settings → Listeo tab → "Applicable Roles"**: multi-select showing all WordPress roles
- Selected roles see the "Verification" menu and are subject to all restrictions
- Unselected roles see nothing and are never restricted
- **Administrators always bypass** restrictions
- Default: `owner`, `seller`, `guest` (backward compatible)
**Files changed:**
- `listeo-verify-pro.php` — static method `Listeo_Verify_Pro::is_user_role_applicable()`
- `class-admin.php` — multi-select in settings + `lvp_applicable_roles` save
- `class-frontend.php` — verification menu, notice and `[lvp_verification_page]` shortcode based on configured roles
- `class-listeo-integration.php` — Listeo message/booking restrictions limited to configured roles
- `class-woocommerce.php` — **12 checkpoints** added:
- "Verification" menu in WooCommerce My Account
- Verified badge in My Account
- Checkout blocking (classic + Gutenberg Blocks + Store API)
- Checkout notice
- Download filtering/blocking (3 hooks)
- Download permission check
- Content protection (products/pages/posts)
---
v1.2.0
📅 30 janvier 2026
[1.2.0] - 30 Janvier 2026
### 🆕 Nouvelle fonctionnalité : Protection du contenu par vérification
**⚠️ Important : Cette fonctionnalité est indépendante de WooCommerce !**
Protégez n'importe quel contenu en exigeant une vérification d'identité. Compatible avec TOUS les thèmes WordPress.
**🔐 Protection du contenu**
- Meta box "Identity Verification" disponible sur pages, articles, produits et **listings Listeo**
- Option "Requires verification" pour restreindre l'accès
- Les utilisateurs non vérifiés voient un message de blocage avec lien vers la vérification
- **Fonctionne avec tous les thèmes** : WordPress standard, Listeo, WooCommerce, etc.
- **Ne nécessite PAS WooCommerce** - c'est une fonctionnalité native du plugin
**📄 Shortcodes disponibles**
- `[lvp_verification_page]` - Affiche la page de vérification complète
- `[lvp_verified_badge]` - Affiche le badge vérifié de l'utilisateur
---
### 🏠 Intégration Listeo avancée (nouveau)
Nouvel onglet **"Listeo"** dans les paramètres avec des fonctionnalités spécifiques au thème Listeo.
**📋 Menu Vérification pour les Guests**
- Option pour afficher le menu "Vérification" dans le dashboard pour les utilisateurs "Guest"
- Par défaut, seuls les Owners voient ce menu
- Activez cette option pour permettre aux Guests de se faire vérifier aussi
**📧 Restrictions de contact**
- Cache le bouton "Send Message" pour les utilisateurs non vérifiés
- Affiche un message invitant à se faire vérifier à la place
- Fonctionne sur les pages listing et les pages auteur
**📅 Restrictions de réservation**
- Cache le bouton "Book Now" pour les utilisateurs non vérifiés
- Cache le bouton dans le sticky footer et le widget de réservation
- Overlay sur le widget de réservation avec message de restriction
- Les boutons sont cachés immédiatement (pas de flash au chargement)
**💬 Message personnalisable**
- Personnalisez le message affiché aux utilisateurs non vérifiés
- Ce message remplace les boutons cachés
---
### 🛒 Intégration WooCommerce (optionnelle)
Ces fonctionnalités s'activent uniquement si WooCommerce est installé ET l'intégration WooCommerce est activée dans les paramètres.
**🛒 Onglet "Vérification" dans Mon Compte WooCommerce**
- Nouvel endpoint `/mon-compte/verification/`
- Utilise la même page de vérification existante
- Badge de statut (✓ vérifié, ⏳ en attente, → non vérifié) dans le menu
**🏷️ Badges vérifiés dans WooCommerce**
- **Mon Compte client** : Badge affiché en haut de la navigation
- **Admin > Commandes** : Colonne "Vérifié" avec ✓ ou ✗
- **Détail commande** : Statut de vérification sous l'adresse de facturation
**🔒 Vérification obligatoire avant commande**
- Option activable dans les paramètres
- Bloque le checkout si le client n'est pas vérifié
- Affiche un bandeau d'avertissement avec lien vers la vérification
**📥 Vérification obligatoire avant téléchargement**
- Option pour bloquer l'accès aux téléchargements
- Page "Mes téléchargements" verrouillée si non vérifié
- Message explicite avec lien vers la vérification
#### Configuration WooCommerce
1. Allez dans **Verify Pro → Paramètres → WooCommerce**
2. Activez "Activer l'intégration WooCommerce"
3. Activez les options souhaitées (checkout, téléchargements)
4. Flush les permaliens (Réglages → Permaliens → Enregistrer)
#### Traductions
- Toutes les nouvelles chaînes traduites en anglais
- Fichiers .pot/.po/.mo mis à jour
#### 🐛 Corrections de bugs
**Erreur fatale LVP_Frontend::get_instance()**
- Correction d'une erreur fatale PHP lors de l'accès à l'onglet Vérification dans Mon Compte WooCommerce
- Ajout du pattern singleton à la classe `LVP_Frontend`
**Initialisation WooCommerce**
- Correction de l'initialisation de la classe `LVP_WooCommerce` qui n'était pas déclenchée
- L'intégration WooCommerce fonctionne maintenant correctement
**Support HPOS amélioré**
- Les styles CSS de la colonne "Vérifié" sont maintenant chargés sur la page HPOS des commandes
- Compatibilité avec WooCommerce 8.2+ et le stockage haute performance
v1.1.3
📅 30 janvier 2026
[1.1.3] - 26 Janvier 2026
### 🐛 Correction critique : Code OTP manquant dans les emails
#### Problème résolu
- **Symptôme** : L'email de vérification était envoyé mais le code OTP n'apparaissait pas (champ vide)
- **Cause** : L'obfuscateur renommait les variables `$otp_code`, `$user_name`, `$expiry_minutes` utilisées dans le template email, causant une incompatibilité avec le fichier inclus
- **Solution** : Mise à jour de l'obfuscateur pour préserver les variables partagées entre fichiers PHP via `include`
#### Fichiers impactés
- `tools/obfuscator/obfuscate.php` - Ajout des variables de templates email à la liste protégée
- `includes/class-email-verification.php` - Variables maintenant correctement passées au template
#### Impact
- ✅ Le code OTP à 4 chiffres s'affiche maintenant correctement dans l'email
- ✅ Le nom d'utilisateur s'affiche correctement
- ✅ La durée d'expiration s'affiche correctement (10 minutes)
v1.1.2
📅 20 janvier 2026
[1.1.2] - 20 Janvier 2026
### 🐛 Corrections de bugs
#### Correction erreur JavaScript avec traductions
- **Problème** : `Uncaught SyntaxError: missing ) after argument list` quand le site est dans une langue contenant des apostrophes (ex: français)
- **Cause** : Les chaînes traduites dans le JavaScript inline contenaient des apostrophes non échappées
- **Solution** : Utilisation de `esc_js()` pour toutes les traductions dans le contexte JavaScript
- **Fichier corrigé** : `templates/license-page.php` (7 instances corrigées)
### 🌐 Amélioration compatibilité Loco Translate
#### Recherche étendue des fichiers de traduction
- **Nouveau chemin** : `wp-content/languages/loco/plugins/` (chemin personnalisé Loco)
- **Ordre de priorité mis à jour** :
1. Loco Translate - Chemin personnalisé (`/loco/plugins/`)
2. Loco Translate - Dossier global standard (`/plugins/`)
3. Dossier languages du plugin
4. Loco Translate - Sous-dossier avec nom du plugin
5. Loco Translate - Chemin alternatif dans loco
- **Impact** : Les langues créées avec Loco dans un chemin personnalisé sont maintenant correctement détectées
v1.1.1
📅 17 janvier 2026
[1.1.1] - 17 Janvier 2026
### 🌐 Compatibilité Loco Translate & Traductions
**📄 Fichier POT créé**
- Fichier template `languages/listeo-verify-pro.pot` généré avec 1184 chaînes de traduction
- Compatible avec Loco Translate et tous les outils de traduction standards
**🔍 Détection dynamique des langues**
- La liste des langues dans les paramètres scanne automatiquement les fichiers `.mo`
- Détection dans le dossier `languages/` du plugin
- Détection dans le dossier global WordPress (`wp-content/languages/plugins/`)
- Nouvelles langues ajoutées avec Loco Translate apparaissent automatiquement
**📂 Chargement multi-emplacements**
- Vérifie d'abord le dossier global Loco Translate
- Puis le dossier du plugin
- Puis le système WordPress standard
**📝 Documentation**
- Nouvelle section "Traductions & Loco Translate" ajoutée à la documentation (Section 12)
- Instructions détaillées pour ajouter de nouvelles langues
- Explication de la structure des fichiers de traduction
**🔧 Correction conflit version FREE**
- Détection améliorée de la version gratuite (costa-verify-for-listeo)
- Désactivation automatique de la FREE quand PRO est activé
- Évite les erreurs fatales de conflit de classe
v1.1.0
📅 13 janvier 2026
[1.1.0] - Janvier 2026
### 🆕 Nouvelles fonctionnalités
**☁️ Stockage Cloud Automatique**
- Sauvegarde automatique des documents vers le cloud
- Support Amazon S3 (toutes régions AWS)
- Support Wasabi (S3-compatible, économique)
- Support Google Drive (OAuth2 avec partage public automatique)
- 3 modes de synchronisation : à l'upload, à l'approbation, ou les deux
- Structure de dossiers automatique (pending/approved/username)
- Test de connexion intégré pour chaque provider
- Configuration complète dans les paramètres
**🗑️ Option de suppression locale**
- Possibilité de supprimer les fichiers locaux après upload cloud réussi
- Économie d'espace disque sur le serveur
- Option configurable dans les paramètres Cloud Storage
**👁️ Visualisation documents cloud**
- L'admin peut voir les documents depuis le cloud si fichier local supprimé
- Badge visuel indiquant la source (☁️ Cloud ou 💾 Local)
- Résolution automatique des URLs (local → cloud)
- Affichage transparent dans "Vérifications en attente" et page détails
### 🔧 Améliorations
- Interface JavaScript améliorée pour les onglets de paramètres
- Meilleure gestion des providers cloud dynamique
- Mapping URL locale → URL cloud pour récupération
v1.0.0
📅 11 janvier 2026
[1.0.0] - Janvier 2026
### 🎉 Version initiale
#### Fonctionnalités principales
**🔐 Vérification d'identité**
- Upload de documents d'identité (carte d'identité, passeport, permis de conduire)
- Support des documents recto/verso
- Vérification de la date d'expiration des documents
- Notifications automatiques avant expiration (30, 15, 7 jours)
- Désactivation automatique des vérifications expirées
**📷 Vérification par Selfie**
- Capture de selfie via caméra mobile ou webcam
- Lien unique envoyé par SMS/Email pour capture mobile
- Comparaison visuelle avec le document d'identité
- Interface mobile optimisée
**🏢 Vérification Entreprise**
- Support des documents d'entreprise (KBIS, attestation fiscale, etc.)
- Vérification du nom de l'entreprise
- Numéro d'enregistrement de l'entreprise
- Documents personnalisables par type
**🎖️ Badges de Vérification**
- Badge "Vérifié" sur les profils utilisateurs
- Badge sur les listings des utilisateurs vérifiés
- Styles personnalisables (couleur, position)
- Affichage conditionnel selon le statut
**⚙️ Interface Administrateur**
- Tableau de bord avec statistiques complètes
- Gestion des vérifications en attente
- Historique complet des vérifications
- Approbation/Rejet avec commentaires personnalisés
- Rejet partiel par catégorie de document
**📧 Notifications Email**
- Email de confirmation de soumission
- Email d'approbation avec badge
- Email de rejet avec raisons détaillées
- Email d'expiration de document
- Emails de rappel avant expiration
**🔌 Intégration API (Optionnel)**
- Support Onfido pour vérification automatique
- Support Jumio pour vérification automatique
- Support Veriff pour vérification automatique
- Mode sandbox pour les tests
- Auto-approbation basée sur le score API
**🌍 Multilingue**
- Support complet français et anglais
- Fichiers de traduction .po/.mo inclus
- Interface admin et frontend traduite
**🔒 Sécurité**
- Système de licence premium
- Protection des documents uploadés
- Vérification des permissions utilisateur
- Protection AJAX avec nonces
**🔗 Intégrations**
- Compatible Listeo Core
- Compatible tous les thèmes Listeo
- Dashboard utilisateur intégré
---
**Auteur :** Costel BWATA
**Site :** https://costaplugin.com