2

私はs2Memberのフックを書き込もうとしています:

次のコードで問題が発生しました。

eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
do_action ("ws_plugin__s2member_after_paypal_notify", get_defined_vars ());
unset ($__refs, $__v); /* Unset defined __refs, __v. */
  1. eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');特に何をします&$$__vか?

  2. のソースコードが見つかりませんws_plugin__s2member_after_paypal_notify。これはクラスになるはずですか?このクラスのソースコードを見つけるにはどうすればよいですか?

4

1 に答える 1

3
  1. evalは文字列を受け取り、PHPコードであるかのように実行します。この特定のケースでは、コードは文字列を受け取り、それを操作して、いくつかの変数名または変数アドレスを挿入しようとします。Evalは非常に悪い習慣であり、アンチパターンです。可能であれば、このプラグインはおそらくセキュリティホールでいっぱいなので、使用しないでください。

  2. ws_plugin__s2member_after_paypal_notifyフックです。WordPressのフックは素晴らしいです-それはJavaScriptのイベントのようなものです。たとえば、ページ内の何かをクリックすると、JavaScriptがonclickイベントを発生させ、誰でもそのイベントにアタッチしてコードを実行できます。WordPressフックも同じように機能します。これで、do_action ("ws_plugin__s2member_after_paypal_notify", get_defined_vars ());インストールしたサードパーティのプラグインを実行すると、プラグインに接続してアクションを実行できます。

このアクションで実行されるコードのビットを見つけたい場合は、add_action('ws_plugin__s2member_after_paypal_notify' ...)(これがフックにアタッチする方法です)、または単にwp-contentディレクトリ(任意のプラグインやテーマがこのフックにアタッチできws_plugin__s2member_after_paypal_notifyます)を探します。

于 2012-07-04T00:12:07.193 に答える