Пользовательские имена ввода в GravityForms

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

Моя текущая идея состоит в том, чтобы написать немного jQuery для динамического переименования всего при загрузке страницы. Очевидно, это не идеально.

Гравитационные формы: http://www.gravityforms.com/


person JacobTheDev    schedule 04.12.2012    source источник
comment
У GF есть куча хуков с экшеном и фильтром, вы их проверяли?   -  person brasofilo    schedule 05.12.2012


Ответы (3)


После обращения к создателям Gravity Forms выяснилось, что они не поддерживают пользовательские имена ввода. В качестве обходного пути я написал немного jQuery для переименования входных данных с правильными именами форм. Например:

$("input#input_1_1").attr("name","first_name");
person JacobTheDev    schedule 06.12.2012

Просто поместите некоторый код в functions.php и заполните форму, которая затем отправит вам по электронной почте список имен идентификаторов, это те же имена, которые вы можете уточнить с помощью инструментов разработчика и т. д. Это было быстрее для меня. Затем измените код, чтобы он публиковался через curl с разными входными именами.

Это использует php, поэтому он обрабатывается на сервере. Таким образом, вам не нужно беспокоиться о людях с отключенным JS в браузере.

http://0to5.com/gravity-forms-submitting-forms-to-3rd-party-applications/

person ott    schedule 20.03.2015
comment
Это больше не работает. Выдает ошибку на последней версии Gforms+WP. - person Ken Prince; 14.04.2015
comment
Мне нужно будет проверить еще раз и посмотреть, работает ли он у меня, спасибо за обновление! - person ott; 16.04.2015

Добавьте новое поле (поле HTML). В настройках содержимого этого поля добавьте этот javascript с тэгами script

Решение без jquery:

document.getElementById("input_14_4").setAttribute("name", "email");

Еще одно решение, которое я нашел здесь

https://docs.gravityforms.com/gform_field_content/

add_filter( 'gform_field_content', function ( $field_content, $field , $value, $lead_id, $form_id) {
 if ( $form['id'] != 14 ) {
        //not the form whose tag you want to change, return the unchanged tag
        return $field_content;
    }
    if ( $field->id == 3 ) {
        return  preg_replace( "|name='(.*?)'|", "name='email'", $field_content );
    }
  
    return $field_content;
}, 10, 5 );
person Farhat Aziz    schedule 07.07.2021
comment
Ответы только на код не особенно полезны. Пожалуйста, добавьте описание того, как этот код решает проблему. - person Shree; 07.07.2021