TwisterMc
TwisterMc

Reputation: 155

How do I get the current page in Gravity Forms

How do I get the current page of a multi page form in Gravity Forms? I've got two solutions that sort of work but neither fully work.

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

This solution works until someone doesn't fill out a required field before hitting the next button. Then it says the user is on page 3 even though they're still on page 2 and need to fix validation errors.

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>';
}

This works well until the validation errors again. In this scenario, instead of changing the page number, it just outputs nothing.

I'd like to know what page the user is on at all times. If they miss a required question on step 2, then I'd like to know that they're still on step 2.

In the end, I'm hoping to send all this information back to Google Analytics and getting accurate information as to what step the user is on is not working well.

Upvotes: 2

Views: 2345

Answers (2)

FLOQ Design
FLOQ Design

Reputation: 117

For the JS approach use:

<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/

Upvotes: 3

Dave from Gravity Wiz
Dave from Gravity Wiz

Reputation: 2869

Sounds like you're looking for:

GFFormDisplay::get_current_page( $form_id );

Upvotes: 4

Related Questions