希望有人能对此有所启发。我在重力表格中设置了一个注册表,用于学生注册。根据法律,学生监护人/家长需要对 18 岁以下的学生给予同意。我设置了一个有条件的“监护人/家长”电子邮件字段,仅显示学生是否未满 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 );
“gform_field_validation_12_3”中的“12”代表我的form_id,“3”代表监护人/家长field_id
“$master = rgpost( 'input_11' );”中的“11”代表我的学生电子邮件 field_id
很简单,即使我在两个字段中具有相同的电子邮件,也不会验证字段并提交表单....
如果启用了电子邮件确认,您需要更改此行:
if ( $result['is_valid'] && $value == $master ) {
对此:
if ( $result['is_valid'] && $value[0] == $master ) {
问题是,当启用电子邮件确认时,$value 是一个数组而不是字符串。您只需从数组中获取第一个值即可,它应该按预期工作。
如果您不想为了解所有这些而烦恼,请随意使用我刚刚编写的这段代码。它还将处理多个字段和多组“唯一”字段。
http://gravitywiz.com/gravity-forms-require-unique-values-for- Different-fields/