每当用户登录或注册成功时,我都必须在我们网站的头部添加一些脚本。对于登录和注册表单,我们使用Ultimate Member插件,它有一个钩子方法um_user_login
和um_user_register
我可以使用它。
即。如果用户登录成功,请在JavaScript中执行head.append(...)
。
然而,我是一名NodeJS和Java开发人员,对Wordpress插件编程完全陌生。到目前为止,我无法找到合适的解决方案来完成这项简单的声音任务。
我的想法是挂钩um_user_login
行动并执行以下操作:
add_action('um_user_login', 'add_tracking_after_login', 10);
function add_tracking_after_login() {
add_action('wp_head', function() {
echo '<script type="text/javascript" src="my_script.js"></script>';
});
}
但是,我已经使用不同的日志记录对此进行了测试,但似乎永远不会执行wp_head的钩子函数(函数add_tracking_after_login
,因为我已经使用日志记录测试了它)。所以我想,我不能以这种方式向wp_head添加动作。
有没有其他方法可以实现所要求的功能?或者我是否因为我是WordPress插件编程的新手而错误地挂钩?
编辑:为了避免混淆,这只是客户端请求的几项任务之一。我还需要通过联系表单对成功注册和成功发送的电子邮件做出反应。在这些情况下,我无法找到类似于Harry SM的答案中的类似解决方法。我需要对我们使用的插件的成功事件作出反应。
提前致谢并提出最好的问候
答案 0 :(得分:1)
您可以在wp_head hook下为登录用户添加条件。
add_action('wp_head', 'add_tracking_after_login', 10);
function add_tracking_after_login() {
if ( is_user_logged_in() ) {
echo '<script type="text/javascript" src="my_script.js"></script>';
}
}
答案 1 :(得分:0)
尝试使用此插件挂钩的代码
add_action('um_user_login', 'add_tracking_after_login', 10);
function add_tracking_after_login() {
wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/js/custom_script.js', array( 'jquery' ) );
}