如何在 Whmcs 上获取被调用的钩子的名称?
How to get name of called hook on Whmcs?
我是 Whmcs 的新手。
据我所知,当一个 Hook 被调用时,whmcs 将在模块中寻找任何 add_call 用于此 hook。
我想找出当时调用了哪个钩子。
我想知道在这个过程中调用了哪个钩子,而不需要编辑任何钩子文件。
示例:当客户添加基金挂钩 x 时,系统会为 it.but 寻找任何 add_call 我希望模块获得任何发生的挂钩。(如事件监听器)
看来你需要一个全局钩子,据我所知,它不可用。
如果您正在调试,在常规设置中有一个设置:挂钩调试模式,它会在 Activity 日志中列出所有已执行的挂钩。
其他选项是添加一个函数,并将所有挂钩重定向到它,例如:
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...
我是 Whmcs 的新手。 据我所知,当一个 Hook 被调用时,whmcs 将在模块中寻找任何 add_call 用于此 hook。 我想找出当时调用了哪个钩子。 我想知道在这个过程中调用了哪个钩子,而不需要编辑任何钩子文件。 示例:当客户添加基金挂钩 x 时,系统会为 it.but 寻找任何 add_call 我希望模块获得任何发生的挂钩。(如事件监听器)
看来你需要一个全局钩子,据我所知,它不可用。
如果您正在调试,在常规设置中有一个设置:挂钩调试模式,它会在 Activity 日志中列出所有已执行的挂钩。
其他选项是添加一个函数,并将所有挂钩重定向到它,例如:
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...