uninstall.php
Définition : uninstall.php est un fichier optionnel placé à la racine d’un plugin WordPress. Lors de sa suppression, WordPress peut l’exécuter pour nettoyer les données propres à cette extension selon sa politique de désinstallation.
Terminologie
Terme officiel : uninstall.php
Autres appellations : Script de désinstallation
À quoi cela sert
Ce mécanisme permet un retrait propre : supprimer des options ou ressources du plugin au moment où l’administrateur demande réellement sa suppression. Il constitue un choix alternatif au callback déclaré par register_uninstall_hook().
Comment cela fonctionne
WordPress charge ce fichier pendant l’opération de désinstallation. La constante WP_UNINSTALL_PLUGIN doit être vérifiée pour rejeter une exécution directe. Le fichier s’exécute dans un contexte où les autres composants habituels du plugin ne sont pas nécessairement chargés.
Dans quel contexte l’utiliser
Choisir cette méthode lorsqu’un plugin possède plusieurs traitements au démarrage ou nécessite un script autonome de désinstallation. Définir au préalable quelles données doivent être conservées ou supprimées.
Exemple concret
Une extension de démonstration avait stocké une seule option spécifique ; sa désinstallation doit permettre de la retirer explicitement.
Exemple de code commenté
<?php
// Fichier /wp-content/plugins/atoolpha-demo/uninstall.php
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
exit;
}
// Cette option est uniquement créée par le plugin de démonstration.
delete_option( 'atoolpha_demo_limite' );
// Ne pas supprimer de données appartenant à d’autres plugins.
Explication pas à pas de l’exemple
1. Le garde protège l’accès direct. 2. L’appel delete_option() cible un nom précis que ce plugin est supposé posséder. 3. WordPress n’efface pas implicitement toutes les données applicatives : le responsable de l’extension doit identifier ses propres ressources.
Résultat attendu
Après suppression effective du plugin, l’option atoolpha_demo_limite est effacée si elle existe. Une simple désactivation ne déclenche pas ce fichier.
Précautions et limites
Une désinstallation peut être irréversible : prévenir clairement l’administrateur si des données de travail disparaissent. En multisite, une option de site et une option de réseau sont distinctes.
À ne pas confondre
Ne pas confondre uninstall.php avec un fichier de migration, et ne pas l’utiliser simultanément avec register_uninstall_hook() comme deux mécanismes concurrents.
Termes associés
- register_uninstall_hook()
- delete_option()
- Plugin Lifecycle
