Salut, je me demande si quelqu'un peut me diriger dans la bonne direction ici. Je n'arrive pas à comprendre comment fonctionne deactivate_plugins (). J'utilise des variantes de ce qui précède depuis un moment et cela a toujours semblé fonctionner jusqu'à récemment.
register_activation_hook(__FILE__, 'my_plugin_activate_deactivate');
add_action('after_switch_theme', 'my_plugin_activate_deactivate');
function my_plugin_activate_deactivate() {
if ( !function_exists ('mythemename') {
deactivate_plugins( plugin_basename(__FILE__) );
}
}
Le premier problème est que la partie register_activation_hook
ne fait rien du tout ... le plugin s'active, que la fonction mythemename existe ou non.
J'ai même essayé de faire cela, mais le plugin est toujours activé.
register_activation_hook(__FILE__, 'my_plugin_activate_deactivate');
function my_plugin_activate_deactivate() {
deactivate_plugins( plugin_basename(__FILE__) );
}
Pire encore, l'utilisation de la partie after_switch_theme
génère une erreur de 500 serveur lors du changement de thème. Il faut désactiver manuellement le plug-in via ftp/sftp.
Mon objectif est d’avoir un "plugin de fonctionnalité de thème" qui vérifie si le thème est actif et s’il ne se désactive pas lui-même. Qu'est-ce que j'oublie ici? Quelque chose d'évident? J'ai l'impression qu'il y a une faute d'orthographe ou quelque chose de stupide parce que cela a toujours semblé fonctionner dans le passé ...
Mise à jour: J'ai activé un journal des erreurs sur le serveur et j'obtiens cette erreur à propos de deactivate_plugins () () :
Call to undefined function deactivate_plugins() in /path/to/plugin/plugin-name.php on line 25
Vous devrez peut-être avoir cette ligne dans votre code
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
Le fichier plugin.php n'est pas automatiquement inclus.