Работает ли хук Gravity Form gform_pre_submission на формах с кнопкой «Далее» и несколькими шагами?

Моя форма состоит из нескольких шагов.

Вы заполняете некоторые данные, нажимаете «Далее» и заполняете дополнительные данные.

меня беспокоит то, что функция не сработает до самого конца при нажатии кнопки отправки.

в этот момент я смогу манипулировать данными в предыдущих полях?

<?php


//Change _6 to the form ID number everywhere
add_action('gform_pre_submission_6', 'capitalize_fields_6');

function capitalize_fields_6($form){

        // add all the field IDs you want to capitalize, to this array

        $fields_to_cap = array('input_id_here');

        // add all uppercase first letter id's, to this array

        $field_to_firstLetter = array('input_id_here');


        foreach ($fields_to_cap as $each) {

                // for each field, convert the submitted value to uppercase and assign back to the POST variable
                // the rgpost function strips slashes

                $_POST[$each] = strtoupper(rgpost($each));
        }

        foreach ($field_to_firstLetter as $each) {

                $_POST[$each] = ucwords(rgpost($each));
        }



        // return the form, even though we did not modify it
        return $form;
}


?>

person jshariar    schedule 08.02.2020    source источник


Ответы (1)


Хук gform_pre_submission срабатывает только после фактической отправки формы, но до того, как будут выполнены какие-либо важные действия. с данными из него.

Многостраничные формы ничего не отправляют между страницами, они более или менее просто оборачивают страницы в блоки и показывают/скрывают их на основе - это просто разработано как «более эстетичный» способ представить длинную форму, вместо того, чтобы иметь чрезвычайно прокручиваемая форма на вашей странице. Исключение составляет вариант Сохранить и продолжить, но ничего за пределами масок/форматов полей фактически проверяется и не проходит через gform_pre_submission.

Если вам нужно «манипулировать данными» на предыдущих страницах, вам может быть лучше использовать JavaScript .onchange() функция обработчика событий для упреждающего изменения данных до их отправки, но после того, как они были введены в поля. Вы также можете использовать свойство CSS text-transform для желаемого inputs и установите для него значение capitalize (обратите внимание, что это влияет только на отображаемое, а не на фактическое значение, поэтому вам все равно нужно будет запустить его через хук gform_pre_submission.

person Xhynk    schedule 08.02.2020