vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Crochet de désinstallation

En anglais : « Uninstall hook »

Mécanisme déclenché lors de la suppression définitive d'une extension WordPress, destiné à effacer proprement ses options, tables et fichiers propres.

Un site propre ne devrait garder aucune trace d’une extension supprimée depuis longtemps : ni options orphelines dans la table wp_options, ni table SQL abandonnée. C’est la responsabilité qui incombe à cette étape finale du cycle de vie, bien plus rarement implémentée que les crochets d’activation ou de désactivation.

Deux façons de l’implémenter

La méthode recommandée consiste à créer un fichier nommé exactement uninstall.php à la racine de l’extension ; WordPress l’exécute automatiquement lors de la suppression, sans qu’il soit nécessaire d’enregistrer un crochet explicite :

if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
  exit;
}
delete_option( 'mon_extension_reglages' );
global $wpdb;
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}mon_extension_donnees" );

La vérification de la constante WP_UNINSTALL_PLUGIN est indispensable : elle garantit que le fichier n’est exécuté que dans le contexte réel d’une désinstallation, jamais en accès direct.

Bon à savoir

  • Une alternative existe via register_uninstall_hook(), mais la documentation officielle recommande le fichier uninstall.php, plus fiable.
  • Sur un multisite, il faut penser à parcourir chaque site du réseau si des données ont été enregistrées par site plutôt qu’au niveau du réseau.
  • Ce fichier n’est exécuté que si l’utilisateur choisit « Supprimer » depuis l’écran des extensions après une désactivation préalable ; une simple suppression manuelle des fichiers par FTP ne le déclenche jamais.
  • Certaines extensions choisissent délibérément de ne rien supprimer automatiquement et proposent plutôt un réglage explicite « Supprimer mes données à la désinstallation », laissant ce choix sensible entre les mains de l’utilisateur.