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 5.10.2

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;
	}

	// loop
	foreach ( $field['sub_fields'] as $sub_field ) {

		// value
		$value = null;

		// find value (key)
		if ( isset( $row[ $sub_field['key'] ] ) ) {

			$value = $row[ $sub_field['key'] ];

			// find value (name)
		} elseif ( isset( $row[ $sub_field['name'] ] ) ) {

			$value = $row[ $sub_field['name'] ];

			// value does not exist
		} else {

			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
	return true;

}