Гравитационные формы: динамическое заполнение метки поля или заполнителя - PullRequest
1 голос
/ 09 апреля 2020

Я хочу заполнить поле ввода данными текущего пользователя. В данный момент я заполняю параметр значения поля, но хочу оставить ввод пустым. Поэтому было бы здорово, если бы я мог заполнить метку или параметр заполнителя поля ввода.

Я не смог ничего найти в документации.

Вот мой текущий код:

add_filter('gform_field_value_username', create_function("", '$value = populate_usermeta(\'nickname\'); return $value;' ));

Ответы [ 2 ]

2 голосов
/ 10 апреля 2020

Я считаю, что это должно работать из коробки с гравитационными формами:

Screenshot of field settings with the user merge tag in the placeholder setting

1 голос
/ 09 апреля 2020

С некоторой помощью поддержки Gravity Forms и собственным тестированием я нашел решение:

function populate_usermeta($meta_key){
    global $current_user;
    return $current_user->__get($meta_key);
}


add_filter( 'gform_pre_render', 'populate_text' );

//Note: when changing choice values, we also need to use the gform_pre_validation so that the new values are available when validating the field.
add_filter( 'gform_pre_validation', 'populate_text' );

//Note: this will allow for the labels to be used during the submission process in case values are enabled
add_filter( 'gform_pre_submission_filter', 'populate_text' );

function populate_text( $form ) {

    $items = array();

    $fields = $form['fields'];
    foreach( $form['fields'] as &$field ) {

        if ( $field->type != 'text' || strpos( $field->cssClass, 'populate-placeholder' ) === false ) {
            continue;
        }

        $field->placeholder = populate_usermeta($field->inputName);

    }

    return $form;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...