无法在过滤器中定位 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