我是Whmcs的新人。 据我所知,当一个Hook调用时,whmcs会在这个钩子的模块中寻找任何add_call。 我想知道当时哪个钩子被调用。 我想知道在进程中调用哪个钩子,而不编辑任何钩子文件。 例如:当客户添加资金时,将调用hook x并且系统会为其查找任何add_call。但我希望模块获取任何发生的挂钩。(如事件监听器)
答案 0 :(得分:0)
似乎你需要一个全局钩子,据我所知,它不可用。
如果您正在调试,常规设置:挂钩调试模式中有一个设置,它将列出活动日志中所有已执行的挂钩。
其他选项是添加一个函数,并将所有挂钩重定向到它,例如:
function customCatchAllHooks($vars) {
$trace = debug_backtrace();
//Get calling function
if (isset($trace[1])) {
$info = $trace[1]['args'];
$hook = $info[0];
$params = $info[1];
error_log(print_r([$hook, $params], true), 3, __DIR__.'/hooks.log');
}
}
//List of hooks, added just two as an example:
add_hook('ClientAreaPageProfile', 1, 'customCatchAllHooks');
add_hook('ClientEdit', 1, 'customCatchAllHooks');
//and so on...