我需要将Google事件跟踪添加到整个网站的所有表格中。我的功能文件中有以下代码:
add_action("gform_after_submission", "gf_ga_tracking", 10, 2);
function gf_ga_tracking($entry, $form) {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
_gaq.push(['_trackEvent', 'Forms', 'Submission', '<?php echo $form["title"]; ?>']);
});
</script>
<?php }
此代码有效,但仅适用于使用AJAX文本确认的表单,但是我的某些表格有条件地将它们重定向到PDF以供下载。在这些表格上,我只会得到红色旋转图标,并且用户没有重定向。
我可以使用更好的功能或钩子来实现相同的结果吗?由于明显的原因,我想限制使用的插件数量,因此我想手动执行此操作。
您可以在主JavaScript文件中收听提交内容,然后检查验证错误后词。这样的东西:
//On load validation error
if ( jQuery('div.validation_error').length != 0 ){
ga('send', 'event', 'Gravity Form', 'Validation Error', jQuery('.gform_wrapper').find('form').attr('id'));
}
//AJAX Validation Errors
jQuery(document).on('gform_post_render', function(e, form_id){
if ( jQuery('div.validation_error').length != 0 ){
ga('send', 'event', 'Gravity Form', 'Validation Error', form_id);
}
});
//Next/Prev page loaded
jQuery(document).on('gform_page_loaded', function(e, form_id, current_page){
ga('send', 'event', 'Gravity Form', 'Next/Prev Page', form_id + ' (' + current_page + ')');
});
//Submission attempt
jQuery(document).on('submit', '.gform_wrapper form', function(){
ga('send', 'event', 'Gravity Form', 'Submit (Attempt)', jQuery('.gform_wrapper').find('form').attr('id'));
});
//Successful form submission
jQuery(document).on("gform_confirmation_loaded", function(e, form_id){
ga('send', 'event', 'Gravity Form', 'Submit (Success)', form_id);
});
还有一个WordPress插件(我尚未使用(:https://wordpress.org/plugins/gravity-forms-google-google-analytics-event-event-tracking/
似乎不会跟踪上面的所有事件,但可以考虑。