Вы можете сделать что-то вроде этого:
add_filter("gform_field_validation_1_1", "dob_validate", 10, 4);
function dob_validate($result, $value, $form, $field){
//Check if dob field matches required age
if ($result["is_valid"]){
// this the minimum age requirement we are validating
$minimum_age = 18;
// calculate age in years like a human, not a computer, based on the same birth date every year
$age = date('Y') - substr($value, 6, 4);
if (strtotime(date('Y-m-d')) - strtotime(date('Y') . '-' . substr($value, 0, 2) . '-' . substr($value, 3, 2)) < 0) {
$age--;
}
if( $age < $minimum_age ){
$result["is_valid"] = false;
$result["message"] = "Sorry, you must be at least $minimum_age years old. You're $age years old.";
}
}
//Check if dob field is empty
if(empty($value)){
$result["is_valid"] = false;
$result["message"] = "This field is required.";
}
return $result;
}
Я использую Gravity Forms 1.8.8 и последнюю версию Wordpress и работает так, как хотелось бы. Снимок экрана:
Вы также можете отредактировать это в соответствии с формой и полем:
add_filter("gform_field_validation_1_1", "dob_validate", 10, 4);
Где gform_field_validation_1_1
для формы 1 и поля 1. Если идентификатор вашей формы равен 8, а номер поля равен 2, вы можете изменить его на gform_field_validation_8_2
.
Вы также можете добавить один и тот же фильтр несколько раз для нескольких форм и полей без повторного создания функции dob_validate
.
person
designtocode
schedule
21.07.2014