У меня есть сценарий фильтрации / проверки, который принимает письма только от определенного домена. Это работает довольно хорошо, но мне нужно иметь его для конкретного входного идентификатора:
Согласно 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 соответственно:
Когда я изменяю код на следующий, скрипт перестает работать:
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 );
Есть ли другой способ проверить свой идентификатор формы? Чего здесь не хватает?