acf_field_repeater::validate_value
Validates values for the repeater field
Метод класса: acf_field_repeater{}
Хуков нет.
Возвращает
true|false.
Использование
$acf_field_repeater = new acf_field_repeater(); $acf_field_repeater->validate_value( $valid, $value, $field, $input );
- $valid(true|false) (обязательный)
- If the field is valid.
- $value(разное) (обязательный)
- The value to validate.
- $field(массив) (обязательный)
- The main field array.
- $input(строка) (обязательный)
- The input element's name attribute.
Список изменений
| С версии 5.0.0 | Введена. |
Код acf_field_repeater::validate_value() acf field repeater::validate value ACF 6.4.2
function validate_value( $valid, $value, $field, $input ) {
// vars
$count = 0;
// check if is value (may be empty string)
if ( is_array( $value ) ) {
// remove acfcloneindex
if ( isset( $value['acfcloneindex'] ) ) {
unset( $value['acfcloneindex'] );
}
// count
$count = count( $value );
}
// validate required
if ( $field['required'] && ! $count ) {
$valid = false;
}
// min
$min = (int) $field['min'];
if ( empty( $field['pagination'] ) && $min && $count < $min ) {
// create error
$error = __( 'Minimum rows not reached ({min} rows)', 'acf' );
$error = str_replace( '{min}', $min, $error );
// return
return $error;
}
// validate value
if ( $count ) {
// bail early if no sub fields
if ( ! $field['sub_fields'] ) {
return $valid;
}
// loop rows
foreach ( $value as $i => $row ) {
// Skip rows that were deleted in paginated repeaters.
if ( false !== strpos( $i, '_deleted' ) ) {
continue;
}
// loop sub fields
foreach ( $field['sub_fields'] as $sub_field ) {
// vars
$k = $sub_field['key'];
// test sub field exists
if ( ! isset( $row[ $k ] ) ) {
continue;
}
// validate
acf_validate_value( $row[ $k ], $sub_field, "{$input}[{$i}][{$k}]" );
}
// end loop sub fields
}
// end loop rows
}
return $valid;
}