vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Crochet de désactivation

En anglais : « Deactivation hook »

Point d'entrée exécuté quand une extension WordPress est désactivée, généralement pour nettoyer des tâches planifiées ou libérer des ressources temporaires.

Désactiver une extension n’est pas la même chose que la supprimer : l’utilisateur peut vouloir la réactiver plus tard, donc ses réglages doivent rester intacts. Ce qui doit en revanche s’arrêter immédiatement, ce sont les processus actifs qu’elle a mis en place, comme une tâche planifiée qui tournerait pour rien en arrière-plan.

Utilisation typique

La fonction register_deactivation_hook() associe le fichier principal de l’extension à une fonction exécutée au moment de la désactivation :

function arreter_mon_extension() {
  $horodatage = wp_next_scheduled( 'mon_extension_cron' );
  if ( $horodatage ) {
    wp_unschedule_event( $horodatage, 'mon_extension_cron' );
  }
}
register_deactivation_hook( __FILE__, 'arreter_mon_extension' );

Ce cas d’usage, annuler une tâche cron programmée avec wp_schedule_event(), est de loin le plus fréquent : sans cela, WP-Cron continuerait à déclencher l’événement même si le code qui le traite ne s’exécute plus normalement.

À ne pas confondre

  • Ce crochet ne doit pas supprimer les options ou les tables de l’extension : cette responsabilité revient au crochet de désinstallation, déclenché seulement lors d’une suppression définitive.
  • Il se déclenche aussi lorsqu’une extension est automatiquement désactivée par WordPress à cause d’une erreur fatale détectée au chargement.
  • Comme pour l’activation, la fonction associée doit être définie ou chargée avant l’appel à register_deactivation_hook(), sous peine que WordPress ne trouve rien à exécuter au moment voulu.