无法在过滤器中定位 gravityform 输入或字段 ID
can't target gravityform input or field ID in filter
我有一个 filter/validation 脚本,它只接受来自特定域的电子邮件。这工作得很好,但我需要在特定的输入 ID 上使用它:
根据https://docs.gravityforms.com/gform_field_validation/#11-email-validation-by-third-party-api#usage:
You can also target a specific field by adding the form id and field
id after the hook name.
//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 );
我的表单和输入 ID 分别被确认为 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 );
还有其他方法可以检查我的表单 ID 吗?这里缺少什么?
根据文档 gform_field_validation_6_1
表示它以 form 6
中的 field 1
为目标。
您的表单 ID 为 1,输入字段 ID 为 13,因此过滤器应为 gform_field_validation_1_13
。
我有一个 filter/validation 脚本,它只接受来自特定域的电子邮件。这工作得很好,但我需要在特定的输入 ID 上使用它:
根据https://docs.gravityforms.com/gform_field_validation/#11-email-validation-by-third-party-api#usage:
You can also target a specific field by adding the form id and field id after the hook name.
//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 );
我的表单和输入 ID 分别被确认为 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 );
还有其他方法可以检查我的表单 ID 吗?这里缺少什么?
根据文档 gform_field_validation_6_1
表示它以 form 6
中的 field 1
为目标。
您的表单 ID 为 1,输入字段 ID 为 13,因此过滤器应为 gform_field_validation_1_13
。