не может нацеливаться на вход гравитационной формы или идентификатор поля в фильтре - PullRequest
0 голосов
/ 23 октября 2019

У меня есть сценарий фильтрации / проверки, который принимает письма только от определенного домена. Это работает довольно хорошо, но мне нужно иметь его для конкретного входного идентификатора:

Согласно https://docs.gravityforms.com/gform_field_validation/#11-email-validation-by-third-party-api#usage:

Вы также можете настроить таргетинг на определенное поле с помощьюдобавление идентификатора формы и идентификатора поля после имени ловушки.

//The following declaration targets field 1 in form 6 add_filter( 'gform_field_validation_6_1', 'your_function_name', 10, 4 );

В настоящее время мой код выглядит следующим образом:

add_filter( 'gform_field_validation', function ( $result, $value, $form, $field ) {
    if ( ! $result['is_valid'] && $field->get_input_type() === 'email' && strpos($field->get_field_input(), 'company.com') === true) {
        $result['is_valid'] = true;
        $result['message']  = '';
    } else {
        $result['is_valid'] = false;
        $result['message']  = 'E-Mail must be a company.com address';
    }

    return $result;
}, 10, 4 );

Myидентификаторы формы и ввода подтверждаются как 1 и 13 соответственно:

enter image description here

Когда я изменяю код на следующий, скрипт перестает работать:

add_filter( 'gform_field_validation_13_1', function ( $result, $value, $form, $field ) {
    if ( ! $result['is_valid'] && $field->get_input_type() === 'email' && strpos($field->get_field_input(), 'company.com') === true) {
        $result['is_valid'] = true;
        $result['message']  = '';
    } else {
        $result['is_valid'] = false;
        $result['message']  = 'E-Mail must be a company.com address';
    }

    return $result;
}, 10, 4 );

Есть ли другой способ проверить свой идентификатор формы? Чего здесь не хватает?

1 Ответ

1 голос
/ 24 октября 2019

Из документации gform_field_validation_6_1 означает, что он нацелен на field 1 в form 6.

Идентификатор формы равен 1, а идентификатор поля ввода равен 13, поэтому фильтр должен быть gform_field_validation_1_13.

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