Wordpress插件源代码

时间:2012-07-04 00:02:30

标签: php wordpress filter wordpress-plugin hook

我正在尝试为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的源代码?这应该是一个班级吗?如何找到此类的源代码?

  3. 非常感谢!

1 个答案:

答案 0 :(得分:3)

  1. eval接受一个字符串,然后像运行PHP代码一样运行它。在这种特殊情况下,代码接受一个字符串并操纵它,试图插入一些变量名或变量地址。 Eval是一种非常糟糕的练习和反模式。如果你可以 - 不要使用这个插件,因为它可能充满安全漏洞。

  2. ws_plugin__s2member_after_paypal_notify是一个钩子。 WordPress钩子非常棒 - 就像JavaScript中的事件一样。例如,如果您单击页面中的某些内容,则会触发onclick事件,任何人都可以附加到该事件并运行一些代码。 WordPress钩子的工作方式相同。现在,当您运行do_action ("ws_plugin__s2member_after_paypal_notify", get_defined_vars ());时,您安装的任何第三方插件都可以附加到它并执行操作。

  3. 如果你想找到在这个动作上运行的代码,请查找add_action('ws_plugin__s2member_after_paypal_notify' ...)(这是你如何附加到钩子上)。或者仅仅是你的wp-content目录中的ws_plugin__s2member_after_paypal_notify(任何插件和/或主题都可以附加到此钩子上)