Работает ли Gravity Form gform_pre_submission ловушка для форм с кнопкой Next и несколькими шагами? - PullRequest
0 голосов
/ 08 февраля 2020

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

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

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

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

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


?>

1 Ответ

0 голосов
/ 08 февраля 2020

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

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

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

...