Pour les crochets d'activation, le codex stipule que vous devez être explicite sur les globals:
Une note sur les variables lors de l'activation
Mais cela ne semble pas fonctionner sur uninstall.php
Si je définis un global dans mon fichier de plugin principal comme ceci:
global $plugin_options_name;
$plugin_options_name = 'xxxxxxxxx';
Le crochet d'activation peut l'utiliser via une instruction globale, contrairement à uninstall.php.
Je dois redéclarer la variable dans unistall.php
Si tel est le cas, si je passe au hook de désinstallation, cela changera?
Vous devriez préférer le point d'ancrage de la désinstallation au fichier si votre plug-in principal n'a pas d'effets secondaires (génère du HTML ou écrit automatiquement dans le fichier/DB lorsqu'il est chargé). OMI, il y a trop de risque (c'est-à-dire non nul) de mal coder le fichier uninstall.php et d'ouvrir le fichier pour diriger l'exécution de l'extérieur. Cela aide également à avoir tous les codes pertinents au même endroit.
uninstall.php, s’il existe, est exécuté sans charger le code du plugin (c’est son objectif) et, par conséquent, tout ce qui est déclaré dans le code du plugin ne sera pas disponible pour uninstall.php.
Je définis les constantes et les globales dans leur propre fichier, que je charge à la fois dans le fichier principal du plug-in et dans uninstall.php
. De cette façon, tous mes globals sont organisés en un seul endroit. Et puis, je n'ai plus à craindre d'effets secondaires accidentels sur la désinstallation, comme cela pourrait arriver si vous utilisiez le crochet.