web-dev-qa-db-ja.com

activate_pluginアクションのすべてのパラメータを取得する方法

私はactivate_pluginにフックしようとしています。

Activate_pluginには1つの必須パラメータと2つのオプションパラメータがあることを私は知っています。私は3つすべてを取得しようとしています。

これが私の設定です。

// 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 );
}

そして私の機能:

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は最初のパラメータのみを返します。 3をすべて入手するにはどうすればよいですか。

私の目標は、いつプラグインがネットワークでアクティブ化されているのか、または通常はアクティブ化されているのかを判断できるようにすることです。したがって、$ network_wideが必要です。

1
AmberKayle

activate_plugin()関数 は3つのパラメータを受け取りますが、1つのパラメータのみを持つactivate_pluginアクションを発行します。これは混乱を招くことがありますが、フックは、同じパラメータを渡さずに、元の関数と同じ名前を使用することがあります。

ネットワークアクティベーションと通常のアクティベーションの違いを知る1つの方法は、update_site_optionupdate_optionフックを監視することです。 activate_plugin()$network_wideパラメータに応じて、それらのうち1つだけが起動します。

1
Jan Fabry

var_export()には何が必要ですか? func_get_args()はあなた自身で一連の引数を与えるべきです。

0
Rarst