acf_field_repeater::update_row()publicACF 5.5.8

This function will update a value row.

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

Хуков нет.

Возвращает

true|false.

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

$acf_field_repeater = new acf_field_repeater();
$acf_field_repeater->update_row( $row, $i, $field, $post_id );
$row(массив) (обязательный)
-
$i(int) (обязательный)
-
$field(массив) (обязательный)
-
$post_id(разное) (обязательный)
-

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

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

Код acf_field_repeater::update_row() ACF 6.0.4

function update_row( $row, $i, $field, $post_id ) {
	// bail early if no layout reference
	if ( ! is_array( $row ) ) {
		return false;
	}

	// bail early if no layout
	if ( empty( $field['sub_fields'] ) ) {
		return false;
	}

	foreach ( $field['sub_fields'] as $sub_field ) {
		$value = null;

		if ( array_key_exists( $sub_field['key'], $row ) ) {
			$value = $row[ $sub_field['key'] ];
		} elseif ( array_key_exists( $sub_field['name'], $row ) ) {
			$value = $row[ $sub_field['name'] ];
		} else {
			// Value does not exist.
			continue;
		}

		// modify name for save
		$sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}";

		// update field
		acf_update_value( $value, $post_id, $sub_field );
	}

	return true;
}