register_deactivation_hook()
Définition : register_deactivation_hook() associe un callback à la désactivation d’un plugin WordPress. Il sert principalement à arrêter des traitements ou nettoyer des ressources temporaires, tout en conservant normalement les réglages persistants.
Terminologie
Terme officiel : register_deactivation_hook()
Autres appellations : Hook de désactivation
À quoi cela sert
Il permet d’annuler des tâches planifiées, supprimer des transients temporaires ou remettre certaines règles à jour lorsqu’une extension cesse d’être active. L’utilisateur doit généralement pouvoir réactiver son plugin sans avoir perdu sa configuration.
Comment cela fonctionne
Le hook de désactivation est déclenché lors de l’opération correspondante dans WordPress. Il ne remplace pas le nettoyage définitif exécuté à la désinstallation. Certaines opérations de fermeture demandent des précautions en multisite ou lors d’une désactivation groupée.
Dans quel contexte l’utiliser
Utiliser lorsqu’un plugin conserve une planification WP-Cron ou des ressources temporaires qui ne doivent pas rester actives après sa désactivation.
Exemple concret
Un plugin doté d’une tâche récurrente doit supprimer sa prochaine planification lors de sa désactivation.
Exemple de code commenté
<?php
// Le nom de hook est propre à ce plugin de démonstration.
function atoolpha_demo_desactiver() {
wp_clear_scheduled_hook( 'atoolpha_demo_tache' );
}
register_deactivation_hook( __FILE__, 'atoolpha_demo_desactiver' );
// La planification initiale serait créée ailleurs dans le plugin.
// Les préférences persistantes restent intactes.
Explication pas à pas de l’exemple
La routine retire les événements planifiés sous le nom de hook atoolpha_demo_tache, s’ils existent. Elle ne touche pas à une option ni au contenu de WordPress. Le nom doit correspondre exactement à la planification initiale.
Résultat attendu
Après désactivation, les événements WP-Cron de ce hook ne restent plus programmés, sous réserve de l’absence d’une autre planification qui les recrée.
Précautions et limites
Ne jamais supprimer les données utilisateurs dans ce hook par défaut. Le nettoyage d’un événement WP-Cron n’interrompt pas une tâche déjà en cours d’exécution.
À ne pas confondre
La désactivation laisse généralement les données pour une reprise ; uninstall.php est prévu pour traiter une suppression effective.
Termes associés
- Plugin Lifecycle
- uninstall.php
- WP-Cron
