Documentation

Code sur mesure : extensions et thèmes enfants signés ellô-wp

Pour une demande qu'aucune extension de WordPress.org ni aucun réglage ne couvre (un shortcode métier, un calcul de prix, un petit bloc, un thème enfant), l'IA peut écrire le code elle-même. ellô-wp ne vous laisse plus installer ce code à la main : il le contrôle, le garde version par version, l'installe et l'active pour vous, avec votre accord à chaque étape, et le retire tout seul s'il casse le site.

Ce guide s'adresse aux agences qui gèrent le site. Il faut le droit Code sur mesure sur le site (voir plus bas).

Ce que c'est

Un paquet de code sur mesure est toujours l'un de ces deux types :

  • une extension ellowp-custom-<nom> (par exemple ellowp-custom-prix-barre) ;
  • un thème enfant ellowp-child-<thème parent> (par exemple ellowp-child-hello-elementor), quand la demande touche à l'apparence du thème.

Chaque paquet est signé ellô-wp : son nom se termine par « (ellô-wp) », son auteur est « ellô-wp », sa description dit pour quoi il a été fait, et il contient un fichier ellowp-custom.json qui garde la demande d'origine, la date, l'organisation et l'empreinte des fichiers. Personne ne se demande plus, un an après, d'où vient ce code.

ellô-wp ne modifie jamais une extension ou un thème de quelqu'un d'autre : il ne touche qu'à ses propres paquets.

Deux verrous

  1. Le verrou du site, dans l'admin WordPress. Il est fermé par défaut, et seul un administrateur WordPress peut l'ouvrir, depuis l'écran d'ellô-wp. Aucun ordre venu du serveur ellô-wp ne peut l'ouvrir : même un serveur ellô-wp piraté ne pourrait pas installer de code sur un site dont le verrou est fermé.
  2. Le droit et votre accord, dans ellô-wp. Le droit Code sur mesure (code.custom) est donné par défaut au seul rôle Administrateur. Et chaque installation, mise à jour, activation ou retour à une version précédente attend votre oui dans la conversation.

Ouvrir le verrou du site

  1. Connectez-vous à l'admin WordPress du site avec un compte administrateur (il faut pouvoir gérer les réglages et installer des extensions).
  2. Menu ellô-wp, onglet Réglages, bloc Code sur mesure d'ellô-wp.
  3. Cochez Autoriser le code sur mesure d'ellô-wp, puis la case J'ai compris : ellô-wp pourra installer du code PHP sur ce site, et enregistrez.

Le bloc indique ensuite qui l'a ouvert et quand, et liste les paquets installés. Pour le refermer, décochez et enregistrez : ce qui est déjà installé continue de fonctionner, mais plus rien ne peut être installé, mis à jour ou activé tant qu'il est fermé. La désactivation reste toujours possible.

Ce que fait l'IA

1. Créer (custom_code action=create). L'IA écrit les fichiers et les envoie à ellô-wp avec votre demande. ellô-wp les contrôle (voir « Les contrôles » plus bas), fabrique l'archive et la garde. Rien n'est encore envoyé au site, même si le verrou est ouvert. Si le verrou est fermé, l'IA vous le dit, avec l'étape à faire dans l'admin.

2. Installer (action=install). ellô-wp envoie l'archive au site, qui la contrôle de nouveau, puis l'installe comme une extension ou un thème normal, désactivée. Vous la voyez dans Extensions (ou Apparence > Thèmes), dans l'admin ellô-wp et dans le dashboard.

3. Activer (action=activate). Le code se met à tourner. Pour un thème enfant, l'IA demande en plus votre confirmation, car toute l'apparence du site change. Juste après, ellô-wp vérifie que le site s'affiche toujours (voir « Période d'essai »).

Mettre à jour : l'IA crée une nouvelle version (action=update, numéro de version plus grand), puis l'installe. Un paquet actif reste actif après la mise à jour, avec la même vérification.

Revenir en arrière (action=rollback) : ellô-wp réinstalle la version précédente qu'il a gardée, ou celle que vous nommez.

Relire le code (action=get) : l'IA peut vous montrer chaque version, fichier par fichier, avec sa date, son auteur et son empreinte.

Votre accord, à chaque fois

Avant chaque installation, mise à jour, activation ou retour en arrière, l'IA s'arrête et vous dit :

  • ce que fait le code : sa description, la demande d'origine, la version, la liste des fichiers et les adresses internet qu'il appelle ;
  • où il s'installe : wp-content/plugins/<slug>/ ou wp-content/themes/<slug>/, désactivé ou actif ;
  • comment l'enlever : le désactiver (en le demandant à l'IA, ou dans Extensions), puis un administrateur le supprime dans l'admin WordPress.

Elle ne continue que si vous répondez oui. Cet accord vaut pour une seule opération, sur cette version-là, pendant 30 minutes : pour une autre version ou une autre action, l'IA vous redemande. Une IA qui essaierait de se passer de cette étape est refusée (consent_not_requested).

La désactivation ne demande pas d'accord : couper du code est toujours permis.

Période d'essai et retour arrière automatique

Quand un paquet est activé, ou mis à jour alors qu'il était actif, ellô-wp Companion ouvre une période d'essai de 15 minutes. Si une erreur fatale survient dans le code du paquet pendant ce temps, le paquet est désactivé aussitôt (ou le thème d'avant est remis) et l'erreur est notée : la page suivante du site s'affiche sans lui.

En plus, juste après l'activation ou la mise à jour, ellô-wp relit la page d'accueil du site. Si elle affiche une erreur (erreur critique de WordPress, erreur fatale, erreur 500), ellô-wp :

  1. désactive le paquet ;
  2. réinstalle la version précédente qu'il a gardée ;
  3. la réactive si elle était active ;
  4. vous dit ce qui s'est passé, avec le message d'erreur, le fichier et la ligne.

Si la page d'accueil ne répond pas du tout (site lent), ellô-wp regarde l'état du paquet sur le site : le contrôle est alors dit « non vérifié » plutôt qu'échoué, et l'IA vous invite à regarder le site.

Dans le dashboard

Dans le détail du site, la carte Code sur mesure (visible avec le droit Code sur mesure) montre :

  • le verrou du site : « Autorisé par <compte> le <date> », ou « Fermé » avec l'étape pour l'ouvrir ;
  • chaque paquet : nom, slug, extension ou thème enfant, version installée, actif ou non, période d'essai en cours, dernier contrôle (date, OK ou échec) et dernière erreur fatale ;
  • les versions gardées : numéro, date, auteur, empreinte courte et demande d'origine de chacune.

Si le site ne répond pas, la carte montre ce qu'ellô-wp a gardé et le dernier état connu du site. Si l'extension ellô-wp Companion est trop ancienne, la carte le dit.

Enlever un paquet

  1. Demandez à l'IA de le désactiver (« désactive ellowp-custom-prix-barre »), ou désactivez-le vous-même dans Extensions. Pour un thème enfant, ellô-wp remet le thème qui était actif avant (ou le thème parent).
  2. Un administrateur le supprime depuis Extensions (ou Apparence > Thèmes), comme n'importe quelle extension.

ellô-wp ne supprime jamais rien, ni sur le site ni les versions qu'il garde.

Les contrôles

Avant de garder une version, puis de nouveau sur le site avant de l'installer, ellô-wp vérifie :

  • les fichiers : chemins simples dans le dossier du paquet, extensions permises (php, js, css, json, txt, md, html, pot, po, svg), texte UTF-8, 60 fichiers, 200 Kio par fichier et 1 Mio en tout au plus ; ni fichier caché, ni vendor/, ni node_modules/, ni binaire (image, police, .mo, archive) ;
  • la signature : en-têtes, préfixe de toutes les fonctions, classes, constantes, options et hooks, constante de version, garde ABSPATH ; le nom d'un hook s'écrit en toutes lettres (chaîne littérale), jamais calculé ;
  • la syntaxe PHP, avec la version de PHP du site ;
  • les constructions interdites : exécution de commandes ou de code (exec, eval…), code obfusqué, inclusion d'un fichier extérieur au paquet, toute écriture de fichier, wp-config.php ou .htaccess, activation ou suppression d'autres extensions, options d'autres extensions, création d'utilisateurs ou de droits, hooks sensibles (droits, connexion, options d'autres extensions, mises à jour, ellô-wp lui-même), lecture de l'environnement du serveur (phpinfo, getenv), appels réseau vers une adresse non déclarée ;
  • les adresses déclarées : les sites auxquels le code enverra des données vous sont dits en clair avant votre accord (« Ce code enverra des données à : … ») et sur la carte du dashboard ; l'analyse ne suit pas ce que le code envoie, vérifiez que ces adresses sont attendues ;
  • aucun secret (clé d'API, clé privée, jeton) : un secret se saisit dans l'admin de l'extension concernée, jamais dans le code.

Une version refusée revient à l'IA avec la liste des problèmes (règle, fichier, ligne) : elle corrige et recommence.

Ces contrôles sont une barrière, pas une preuve : du code malveillant bien caché peut passer une analyse automatique. C'est pourquoi s'y ajoutent les deux verrous, votre accord, le journal, la lecture possible de chaque version et la période d'essai.

Limites actuelles

  • Pas de bibliothèque tierce (vendor/) : le code doit tenir en lui-même.
  • Aucune écriture de fichier par le code sur mesure, pas même dans uploads.
  • Seule la page d'accueil est relue après une activation : une erreur qui ne se montre que sur une autre page est rattrapée par la période d'essai quand quelqu'un l'ouvre, pas par le contrôle de rendu.
  • Pas de contrôle « Plugin Check » de WordPress.org ni d'analyse du JavaScript.
  • Le dashboard montre les versions, pas encore les différences entre deux versions (l'IA peut vous les expliquer avec action=get).

Quand l'IA ne peut pas

Ce que dit l'IA Pourquoi Que faire
Le verrou du site est fermé (custom_code_disabled) Aucun administrateur n'a autorisé le code sur mesure sur ce site Ouvrez-le dans ellô-wp > Réglages de l'admin WordPress (voir plus haut).
Votre accord est demandé (hardcode_requires_consent) Toute installation, activation ou retour en arrière l'exige Relisez ce que fait le code, puis répondez oui.
Code refusé (custom_code_invalid) Un contrôle a échoué (fichier, signature, syntaxe, construction interdite) L'IA corrige d'après la liste ; rien n'a été installé.
Contrôle PHP indisponible (php_lint_unavailable) Le service de contrôle d'ellô-wp ne répond pas Réessayez un peu plus tard : ellô-wp n'installe jamais sans ce contrôle.
Retour en arrière fait (custom_code_failed) La nouvelle version cassait le site Le site tourne avec la version d'avant ; l'IA corrige d'après l'erreur.
Thème parent absent (parent_theme_missing) Un thème enfant a besoin de son thème parent installé Installez d'abord le thème parent.
Mettez à jour ellô-wp Companion (plugin_outdated) Une version plus récente de l'extension est nécessaire La mise à jour d'ellô-wp Companion se fait d'ordinaire toute seule ; sinon, installez la dernière version depuis le dashboard.
Utilisez custom_code (custom_code_route) Les paquets ellô-wp ne s'installent ni ne s'activent par les outils d'extensions habituels L'IA passe par custom_code.
Les modifications de fichiers sont interdites DISALLOW_FILE_MODS dans wp-config.php ellô-wp ne peut rien installer sur ce site.

Le droit « Code sur mesure »

  • Voir la carte du dashboard, lister et relire les paquets, créer et mettre à jour des versions : Code sur mesure (code.custom).
  • Installer, activer, désactiver, revenir en arrière : en plus Gérer les extensions et les thèmes et Écrire en direct.

Par défaut, seul le rôle Administrateur a ce droit. Pour le donner à un autre rôle : dashboard, détail du site, Rôles et droits, groupe Administration. Votre compte WordPress relié doit en plus pouvoir installer et activer des extensions.

Exemples de demandes

  • « Ajoute un shortcode [prix_barre] qui affiche l'ancien prix barré à côté du nouveau, sous forme d'extension sur mesure. »
  • « Crée un thème enfant de Hello Elementor qui charge la police du menu, sans l'activer. »
  • « Montre-moi le code de ellowp-custom-prix-barre avant de l'installer. »
  • « Installe la version 1.0.1 de ellowp-custom-prix-barre. »
  • « Liste le code sur mesure du site et dis-moi ce qui est actif. »
  • « Reviens à la version précédente de ellowp-custom-prix-barre. »
  • « Désactive ellowp-custom-prix-barre. »
Tous les guides