web-dev-qa-db-fra.com

Crochet d'activation du plugin distant

Je suis à distance en activant les plugins en utilisant update_option('active_plugins,'some_plugins');. Cela fonctionne très bien sauf une chose: si certains plugins doivent créer des tables en utilisant register_activation_hook(__FILE__,'activate');, ils ne les créeront pas.

Lorsque j'active des plugins normalement dans wp-admin/plugins.php, cela fonctionne bien. Des idées sur la façon d'exécuter à distance ce crochet d'activation ou peut-être existe-t-il un moyen différent de mieux activer le plugin?

1
bigwolk

Utilisez activate_plugin() à la place:

activate_plugin( $plugin, $redirect = '', $network_wide = false, $silent = false )

Vous avez juste besoin du premier paramètre, la même valeur que dans l'option.

Cette fonction appellera les actions nécessaires:

if ( ! $silent ) {
    do_action( 'activate_plugin', $plugin, $network_wide );
    do_action( 'activate_' . $plugin, $network_wide );
}

Remarque: selon l'endroit où vous appelez la fonction activate_plugin, vous devrez peut-être ajouter ceci:

 include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
1
fuxia