0

每当用户登录或注册成功时,我都必须在我们网站的头部添加一些脚本。对于登录和注册表格,我们使用 Ultimate Member 插件,它有一个钩子方法 um_user_loginum_user_register我认为我可以使用它。

即,如果用户登录成功,请head.append(...)在 JavaScript 中执行。

但是,我是一名 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 下面的答案类似的解决方法。我需要对我们使用的插件的成功事件做出反应。

提前致谢并致以最诚挚的问候

4

2 回答 2

1

您可以在 wp_head 挂钩下为登录用户添加条件。

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>';
    }
}
于 2018-01-29T14:57:53.530 回答
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' ) ); 
}
于 2018-01-29T16:01:34.820 回答