J'essaie de me connecter à activate_plugin.
Je sais que activate_plugin a 1 paramètre requis et 2 en option. J'essaie d'acquérir tous les 3.
Voici ma configuration:
// create plugin settings menu
add_action('admin_menu', 'pe_create_menu');
function pe_create_menu() {
//create new sub-level menu
add_submenu_page( 'plugins.php', 'Plugin Settings', 'Plugin Enabler', 'administrator', __FILE__, 'pe_settings_page' );
// Add my hook
add_action( 'activate_plugin', 'pe_network_activate', 10, 3 );
}
Et ma fonction:
function pe_network_activate( $plugin, $redirect = '', $network_wide = false ) {
$args = var_export( func_get_args(), true);
_log("Args: " . $args); // write to the WP error_log
}
$ args ne renvoie que le premier paramètre. Comment puis-je obtenir tous les 3?
Mon objectif est de pouvoir savoir quand un plugin est activé par le réseau ou simplement activé - d'où la nécessité de $ network_wide.
La fonction activate_plugin()
accepte trois paramètres, mais elle émet l'action activate_plugin
avec un seul paramètre. Cela peut prêter à confusion, mais les hooks utilisent parfois le même nom que la fonction dont ils proviennent, sans transmettre les mêmes paramètres.
Une façon de faire la différence entre une activation réseau et une activation régulière consiste à surveiller les points d'ancrage update_site_option
et update_option
. Un seul d'entre eux se déclenchera, en fonction du paramètre $network_wide
de activate_plugin()
.
Pour quoi avez-vous besoin de var_export()
? func_get_args()
devrait vous donner un tableau d'arguments.