如何在 Gravity Forms 中获取当前页面

How do I get the current page in Gravity Forms

如何在 Gravity Forms 中获取多页表单的当前页?我有两个解决方案可以工作,但都不能完全工作。

function gf_get_current_page() {
    return rgpost( 'gform_source_page_number_' . $_POST['gform_submit'] ) ? rgpost( 'gform_target_page_number_' . $_POST['gform_submit'] ) : 1;
}

此解决方案一直有效,直到有人在点击下一步按钮之前未填写必填字段。然后它说用户在第 3 页,即使他们仍在第 2 页并且需要修复验证错误。

add_action( 'gform_post_paging', 'get_current_page_num_gf', 10, 3 );
function get_current_page_num_gf( $form, $source_page_number, $current_page_number ) {
        echo '<script type="text/javascript">console.log(\'' . $current_page_number . '\');</script>';
}

在再次出现验证错误之前,此方法运行良好。在这种情况下,它不会更改页码,只会输出任何内容。

我想知道用户一直在浏览哪个页面。如果他们在第 2 步中遗漏了必答题,那么我想知道他们仍在第 2 步中。

最后,我希望将所有这些信息发送回 Google Analytics,并获得准确的信息,说明用户正在进行的哪一步效果不佳。

听起来您正在寻找:

GFFormDisplay::get_current_page( $form_id );

对于 JS 方法使用:

<script type="text/javascript">

    jQuery(document).on('gform_post_render', function(event, form_id, current_page){

        // code to trigger on form or form page render

    });

</script>

https://docs.gravityforms.com/gform_post_render/