acf_field_repeater::validate_value()publicACF 5.0.0

validate_value

description

@type    function

{} Это метод класса: acf_field_repeater{}

Хуков нет.

Возвращает

$post_id. (int)

Использование

$acf_field_repeater = new acf_field_repeater();
$acf_field_repeater->validate_value( $valid, $value, $field, $input );
$valid (обязательный)
-
$value (обязательный)
-
$field (обязательный)
-
$input (обязательный)
-

Список изменений

С версии 5.0.0 Введена.

Код acf_field_repeater::validate_value() ACF 5.10.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 ( $min && $count < $min ) {

		// create error
		$error = __( 'Minimum rows 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 ) {

			// 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
	return $valid;
}