Skip to content

Releases: cyrilgodon/ai-engine-multilang

Version 1.0.4 - FIX FINAL (Plugins Premium)

Choose a tag to compare

@cyrilgodon cyrilgodon released this 18 Nov 12:16

🐛 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 :

  1. Laisser le plugin s'activer sans vérification
  2. Vérifier au runtime (après plugins_loaded)
  3. 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)

Choose a tag to compare

@cyrilgodon cyrilgodon released this 18 Nov 12:12

🧹 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() et admin_notices (50 lignes)
  • Utilisation : Header natif WordPress Requires Plugins:
  • Résultat : Code 60% plus court, 100% best practices

Avantages

  1. WordPress gère tout : Affichage des dépendances manquantes automatique
  2. Pas de code custom : Aucune maintenance nécessaire pour les dépendances
  3. Meilleure UX : Messages d'erreur natifs WordPress (cohérents avec l'admin)
  4. 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

Choose a tag to compare

@cyrilgodon cyrilgodon released this 18 Nov 12:08

🐛 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_notices après plugins_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 seulement class_exists('Meow_MWAI_Core') (AI Engine)
  • eai_ml_runtime_dependencies_check() : Nouvelle fonction appelée via admin_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

Choose a tag to compare

@cyrilgodon cyrilgodon released this 18 Nov 12:06

🐛 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, fonction pll_current_language(), classe Polylang, et plugins actifs
    • Support explicite de polylang-pro/polylang.php en plus de polylang/polylang.php
    • Chargement automatique de plugin.php pour utiliser is_plugin_active()
  • 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 maintenant wp-admin/includes/plugin.php automatiquement
  • 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

Choose a tag to compare

@cyrilgodon cyrilgodon released this 18 Nov 12:04

🎉 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

  1. Télécharger le ZIP de cette release
  2. Installer via WordPress Admin > Extensions > Ajouter > Téléverser
  3. Activer le plugin
  4. Configurer Quick Actions avec format multilingue

📚 Documentation

Développé par Elevatio 🚀