如何在成功提交表单后推送dataLayer事件? (使用Ninja Forms WP插件)

时间:2016-10-28 20:46:49

标签: javascript ajax google-tag-manager ninja-forms

我想使用Google跟踪代码管理器跟踪this page上的成功表单提交,为此我需要在用户提交表单时触发自定义JavaScript事件。

<script>dataLayer.push({'event':'formSubmitted'});</script>

我使用的插件是Ninja Forms,我可以看到它使用PHP或AJAX来处理表单。

我最好的猜测是我需要在ninja-forms \ includes \ actions中的SuccessMessage.php文件中的某处添加我的dataLayer.push事件(你可以下载插件并查看内部)但我不确定在哪里或何。

或许那不是

由于

2 个答案:

答案 0 :(得分:0)

您可以更改成功消息的HTML吗?如果是这样,我建议将您的JavaScript代码段放在那里。

如果不能解决问题,你可以在jQuery.ajax Post的成功函数中将它添加到front-end.js文件中:

   jQuery.ajax({
                url: nfFrontEnd.adminAjax,
                type: "POST",
                data: l,
                cache: !1,
                success: function(t, i, n) {
                    try {
                        dataLayer.push({'event':'formSubmitted'}); //<- YOUR CODE HERE
                        var r = jQuery.parseJSON(t);
                            nfRadio.channel("forms").trigger("submit:response", r, i, n, e.get("id")),
                            nfRadio.channel("form-" + e.get("id")).trigger("submit:response", r, i, n)
                        } catch (o) {
                            console.log("Parse Error")
                        }
                    },
                    error: function(e, t, i) {
                        console.log("ERRORS: " + t),
                        nfRadio.channel("forms").trigger("submit:response", "error", t, e, i)
                    }
                })

答案 1 :(得分:0)

nfRadio.channel("forms").on('submit:response', function(e) {

       console.log('submit');
       dataLayer.push({'event': 'test'});
});