# Désinstallation d’une extension : laisser le client garder ses données

> Supprimer un plugin ne devrait jamais effacer d'un coup et sans confirmation des années de données saisies par un client, même si le code de suppression est techniquement irréprochable.

- Auteur : Clément Hadrot
- Publié le : 2023-09-03
- Mis à jour le : 2023-09-03
- Catégorie : Extensions
- URL : https://wpmoderne.dev.wordpress-developpement.fr/extensions/desinstallation-extension-client-garde-donnees/

## L’essentiel

- Un écran de confirmation avant suppression coûte peu et évite des drames
- Proposer un export avant la suppression rassure sans complexité technique
- Une option pour conserver les données doit rester lisible et non cochée par défaut

Une extension de gestion d'adhérents pour clubs sportifs est retirée du site d'une association après le changement de prestataire informatique du club. Le nouvel administrateur clique sur « Supprimer » depuis l'écran des extensions, sans réaliser que cette action déclenche également l'exécution du fichier `uninstall.php` de l'extension, qui supprime intégralement les tables personnalisées contenant huit ans d'historique de cotisations et de présences aux entraînements. Aucun écran de confirmation spécifique n'avertit l'administrateur de cette conséquence, au-delà du message générique de WordPress qui prévient simplement que les fichiers du plugin seront supprimés.

Ce scénario, loin d'être rare, pousse à repenser l'expérience de désinstallation d'une extension qui accumule des données métier significatives, au-delà de la simple question technique du choix entre `uninstall.php` et `register_uninstall_hook()`, déjà largement traitée par ailleurs.

## Le problème d'expérience, pas seulement de code

Techniquement, un fichier `uninstall.php` bien écrit fonctionne parfaitement : il supprime proprement les tables, les options et les métadonnées créées par l'extension, sans rien laisser traîner en base après coup, ce qui est en soi une bonne pratique d'hygiène pour ne pas polluer indéfiniment la base d'un site qui n'utilise plus l'extension. Le problème n'est pas la propreté de la suppression, mais l'absence totale de garde-fou avant qu'elle ne se déclenche, pour des données qui, contrairement à un simple réglage d'affichage, représentent un travail de saisie de plusieurs années.

## Construire un écran de confirmation adapté

> L'essentiel à retenir : Un écran de confirmation avant suppression coûte peu et évite des drames ; Proposer un export avant la suppression rassure sans complexité technique ; Une option pour conserver les données doit rester lisible et non cochée par défaut

Plutôt que de laisser `uninstall.php` s'exécuter silencieusement dès le clic sur « Supprimer » dans l'écran natif des extensions, la solution consiste à intercepter ce moment plus tôt, en désactivant d'abord l'extension normalement, puis en proposant, avant toute suppression effective, un écran dédié accessible depuis les réglages de l'extension elle-même :
