Send Datalayer event on gform/submission/submission_started hook [RESOLVED]

This hook gform/submission/submission_started doesn’t seem to be working for me
I’m adding the code via wp_footer but the submission hook doesn’t trigger


add_action( 'wp_footer', 'car_account_creation_datalayer_script', 100 );

function car_account_creation_datalayer_script() {
    $form = GFAPI::get_form( 7 );

    if ( empty( $form ) ) {
        return;
    }

    $form_title = rgar( $form, 'title' );
    ?>
    <script>
        window.addEventListener('load', function () {

            if (typeof gform === 'undefined') {
                console.log('gform not available');
                return;
            }

            gform.addFilter('gform/submission/submission_started', function (data) {

                if (!data || data.formId !== 7) {
                    return data;
                }

                var params = new URLSearchParams(window.location.search);
                var membershipType = params.get('membership-type') || '';

                window.dataLayer = window.dataLayer || [];
                window.dataLayer.push({
                    event: 'account_creation_form_submit',
                    membership_type: membershipType,
                    form_title: <?php echo wp_json_encode( $form_title ); ?>
                });

                console.log('GF filter fired', data);

                return data;
            });

        });
    </script>
    <?php
}

None of the hooks worked because it was redirecting automatically
I ended up using a vanilla JS click event listener

add_action( 'wp_footer', 'car_account_creation_datalayer_script', 100 );

function car_account_creation_datalayer_script() {
    $form = GFAPI::get_form( 7 );

    if ( empty( $form ) ) {
        return;
    }

    $form_title = rgar( $form, 'title' );
    ?>
    <script>
        document.addEventListener('click', function (e) {

            // Find if the click came from a submit button inside your form
            var submitBtn = e.target.closest('#gform_7 button[type="submit"], #gform_7 input[type="submit"]');

            if (!submitBtn) {
                return;
            }

            console.log('Submit click detected');

            var params = new URLSearchParams(window.location.search);
            var membershipType = params.get('membership-type') || '';

            window.dataLayer = window.dataLayer || [];
            window.dataLayer.push({
                event: 'account_creation_form_submit',
                membership_type: membershipType,
                form_title: <?php echo wp_json_encode( $form_title ); ?>
            });

        });
    </script>
    <?php
}

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.