重力形式 - 将值与另一个字段

时间:2015-06-23 07:27:27

标签: forms validation compare field gravity

希望有人可以对此有所了解。我在Gravity Forms中设置了注册表格,供学生注册。根据法律规定,学生监护人/家长需要同意18岁以下的学生。我已经设置了一个有条件的" Guardian / Parent"电子邮件字段,仅显示学生未满18周岁。

因此X2电子邮件字段存在于表单中,一个用于学生,一个用于监护人/父母。提交表单后,激活邮件仅发送到监护人电子邮件地址。

我的问题是,目前同一个电子邮件地址可以在监护人/父母和学生电子邮件中噘嘴。我想验证2个电子邮件字段并确保它们不相同。

我尝试了以下内容,但它根本没有效果。

add_filter( 'gform_field_validation_12_3', function ( $result, $value, $form, $field ) {
    $master = rgpost( 'input_11' );
    if ( $result['is_valid'] && $value == $master ) {
        $result['is_valid'] = false;
        $result['message']  = 'Please enter a different email.';
    }

    return $result;
}, 10, 4 );

" 12"在" gform_field_validation_12_3"代表我的form_id和" 3"代表守护者/父母field_id

" 11" in" $ master = rgpost(' input_11');"代表我的学生电子邮件field_id

即使我在两个字段中都有相同的电子邮件,它也不会验证字段并提交表单....

1 个答案:

答案 0 :(得分:0)

如果启用了电子邮件确认,您将要更改此行:

if ( $result['is_valid'] && $value == $master ) {

到此:

if ( $result['is_valid'] && $value[0] == $master ) {

问题是,启用电子邮件确认后,$ value是一个数组而不是字符串。您可以从数组中获取第一个值,它应该按预期工作。

如果您不想大惊小怪地知道所有这些,请随意使用我刚才写的这个片段。它还将处理多个字段和多个" unique"字段。

http://gravitywiz.com/gravity-forms-require-unique-values-for-different-fields/