web-dev-qa-db-fra.com

Plugin Désactiver les erreurs d'activation automatique

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
1
Bryan Willis

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.

2
RichyVN