Releases: cyrilgodon/ai-engine-multilang
Release list
Version 1.0.4 - FIX FINAL (Plugins Premium)
🐛 Version 1.0.4 - FIX FINAL (Plugins Premium)
Problème Identifié
Le header Requires Plugins: de WordPress NE FONCTIONNE PAS avec les plugins premium :
- ❌ Polylang Pro n'est PAS sur WordPress.org
- ❌ AI Engine Pro n'est PAS sur WordPress.org
- ❌ WordPress bloque l'activation même si ces plugins sont installés
Solution v1.0.4
Suppression complète de Requires Plugins: et utilisation de la vérification runtime :
// À l'activation : AUCUNE vérification, le plugin s'active toujours
// Au runtime (plugins_loaded) :
if ( ! function_exists('pll_current_language') || ! class_exists('Meow_MWAI_Core') ) {
return; // Le plugin reste simplement inactif (graceful degradation)
}Avantages
✅ Le plugin s'active maintenant TOUJOURS (pas de blocage)
✅ Si dépendances manquent : plugin inactif (pas d'erreur, pas de plantage)
✅ Logs debug si WP_DEBUG activé
✅ Graceful degradation : meilleure UX
Leçon Définitive
Pour les plugins premium, Requires Plugins: est inutile. La seule solution viable :
- Laisser le plugin s'activer sans vérification
- Vérifier au runtime (après
plugins_loaded) - Si dépendances manquent : ne rien faire (pas d'erreur)
Ce devrait être la version finale qui FONCTIONNE.
Version 1.0.3 - Refactoring Majeur (Best Practices)
🧹 Version 1.0.3 - Refactoring Majeur (Best Practices WordPress)
Simplification Drastique
150+ lignes de code supprimées → Tout géré par WordPress nativement via Requires Plugins:
Avant v1.0.3
// 250+ lignes de code custom
function eai_ml_check_dependencies() { /* 50 lignes */ }
function eai_ml_check_elevatio_compatibility() { /* 20 lignes */ }
function eai_ml_activate() { /* 40 lignes avec wp_die() */ }
function eai_ml_runtime_dependencies_check() { /* 50 lignes notices */ }
add_action('admin_notices', 'eai_ml_runtime_dependencies_check');Après v1.0.3
// 1 ligne dans le header
* Requires Plugins: ai-engine, polylang
// Hook d'activation simplifié (juste log)
function eai_ml_activate() {
error_log('Plugin activated');
}Changements
- ❌ Supprimé :
eai_ml_check_dependencies()(50 lignes) - ❌ Supprimé :
eai_ml_check_elevatio_compatibility()(20 lignes) - ❌ Supprimé : Logique custom d'activation avec
wp_die()(40 lignes) - ❌ Supprimé :
eai_ml_runtime_dependencies_check()etadmin_notices(50 lignes) - ✅ Utilisation : Header natif WordPress
Requires Plugins: - ✅ Résultat : Code 60% plus court, 100% best practices
Avantages
- WordPress gère tout : Affichage des dépendances manquantes automatique
- Pas de code custom : Aucune maintenance nécessaire pour les dépendances
- Meilleure UX : Messages d'erreur natifs WordPress (cohérents avec l'admin)
- Code propre : Focus sur les fonctionnalités, pas sur la plomberie
Leçon Apprise
TOUJOURS vérifier les systèmes natifs WordPress AVANT de coder.
Le header Requires Plugins: existe depuis WordPress 6.5 (2024) et rend obsolète TOUT code de vérification manuelle. Les versions 1.0.0, 1.0.1 et 1.0.2 auraient pu être évitées en appliquant cette best practice dès le début.
Migration depuis v1.0.0-1.0.2 : Aucune action requise, simple mise à jour. Le comportement est identique mais le code est beaucoup plus propre.
Version 1.0.2 - Correction Critique Activation
🐛 Version 1.0.2 - Correction Critique Activation Plugin
Problème Résolu
v1.0.0-1.0.1 : Le plugin ne pouvait PAS s'activer car Polylang Pro n'était pas détecté au moment de l'activation (ses fonctions PHP ne sont pas encore chargées).
v1.0.2 : Le plugin s'active maintenant SANS PROBLÈME. La vérification de Polylang se fait au runtime via une notice admin.
Changements
- Hook d'activation simplifié : Vérifie uniquement AI Engine (via
class_exists()) - Vérification Polylang déplacée : Au runtime via
admin_noticesaprèsplugins_loaded - Notice admin intelligente : Si Polylang manque, affiche une notice rouge explicative avec lien de téléchargement
- Expérience utilisateur améliorée : Plugin activable immédiatement, notice uniquement si dépendance manquante
Technique
eai_ml_activate(): Vérifie seulementclass_exists('Meow_MWAI_Core')(AI Engine)eai_ml_runtime_dependencies_check(): Nouvelle fonction appelée viaadmin_notices- Vérification
function_exists('pll_current_language')APRÈS chargement complet des plugins
Impact
- ✅ Le plugin s'active maintenant sans erreur
- ✅ Si Polylang manque, une notice claire s'affiche dans l'admin
- ✅ Compatible Polylang gratuit ET Polylang Pro
- ✅ Pas de blocage à l'activation
IMPORTANT : Cette version corrige le bug critique empêchant l'activation du plugin. Mettez à jour immédiatement si vous utilisez v1.0.0 ou v1.0.1.
Version 1.0.1 - Correction Détection Polylang Pro
🐛 Version 1.0.1 - Correction Détection Polylang Pro
Fixed
- Détection Polylang Pro : Le plugin détecte maintenant correctement Polylang Pro à l'activation
- Vérification multiple : constante
POLYLANG_VERSION, fonctionpll_current_language(), classePolylang, et plugins actifs - Support explicite de
polylang-pro/polylang.phpen plus depolylang/polylang.php - Chargement automatique de
plugin.phppour utiliseris_plugin_active()
- Vérification multiple : constante
- Message d'erreur amélioré : Clarification du message si Polylang manquant ("Polylang ou Polylang Pro")
Technique
- Fonction
eai_ml_check_dependencies()améliorée avec détection robuste multi-méthodes - Hook
eai_ml_activate()charge maintenantwp-admin/includes/plugin.phpautomatiquement - Compatibilité totale avec Polylang gratuit ET Polylang Pro
Migration depuis 1.0.0
Aucune action requise, simple mise à jour du plugin. Le problème d'activation avec Polylang Pro est corrigé.
Note : Cette version corrige le bug empêchant l'activation du plugin sur les sites utilisant Polylang Pro au lieu de Polylang gratuit.
Version 1.0.0 - Initial Release
🎉 Version 1.0.0 - Initial Release
✨ Nouvelles Fonctionnalités
- 🌍 Gestion multilingue des conversations : Détection automatique du changement de langue Polylang
- 📢 Traduction automatique textes UI : Traduction de tous les textes de l'interface AI Engine (Send, Clear, Placeholder, etc.)
- 🎯 Traduction automatique Quick Actions : Support du format "Texte [fr]|Text [en]|Texto [es]"
- 💬 Popup intelligente changement de langue : Alerte si conversation active avec 2 options (nouvelle discussion ou terminer l'actuelle)
- 🔄 Réinitialisation conversation sécurisée : Compatible avec React AI Engine
- 💾 Système de détection localStorage : Mémorisation dernière langue sans cookie RGPD
- 📝 Logs complets pour debug : Console JavaScript + debug.log PHP avec version du plugin
- 🌐 Support multilingue : Français (FR) et English (EN) complets, Español (ES) préparé
🔧 Technique
- Architecture modulaire (3 classes PHP + 1 module JavaScript)
- Build système DEV/PROD (esbuild + obfuscation)
- Plugin Update Checker pour auto-update depuis GitHub
- Documentation complète (README, SPECS, QUICK-START)
- Tests manuels validés sur staging
📦 Installation
- Télécharger le ZIP de cette release
- Installer via WordPress Admin > Extensions > Ajouter > Téléverser
- Activer le plugin
- Configurer Quick Actions avec format multilingue
📚 Documentation
Développé par Elevatio 🚀