Ultimate Member插件钩子失效问题排查求助
解决Ultimate Member的
um_user_register钩子不生效问题 你的代码里有个明显问题:钩子声明的参数数量和回调函数不匹配。
你用add_action注册钩子时,第4个参数设为2(表示这个钩子会传递2个参数给回调函数),但你的my_user_register()函数根本没定义参数,这种不匹配会导致WordPress跳过这个钩子的执行,甚至可能触发隐性错误。
先把代码改成这样:
add_action( 'um_user_register', 'my_user_register', 10, 2 ); function my_user_register( $user_id, $args ) { // 别用die,会直接中断注册流程,用日志或者打印信息测试更稳妥 error_log( 'um_user_register钩子触发了!用户ID:' . $user_id ); // 也可以临时在页面输出内容,注册后刷新就能看到 echo '钩子生效了,当前用户ID:' . $user_id; }
如果改完还是没效果,按下面的步骤排查:
- 确认Ultimate Member插件是激活状态,且版本和当前WordPress兼容
- 检查functions.php里的代码位置:别把这段代码放在
is_admin()这类条件判断里,不然前端注册时不会执行 - 排查冲突:临时禁用其他所有插件,切换到WordPress默认主题(比如Twenty Twenty-Four)再测试,看是不是其他代码或者主题的问题
- 开Debug找错误:在wp-config.php里加上
define( 'WP_DEBUG', true );和define( 'WP_DEBUG_LOG', true );,然后去wp-content/debug.log里看有没有相关报错,很多时候钩子不执行都是因为有隐性错误
内容的提问来源于stack exchange,提问作者Mike Moum
相关产品推荐
相关产品推荐

