ACF\Pro\Datastore

Localization::serialize_repeater_valuepublicACF 6.8.1

Serializes a repeater field value.

acf_get_value() returns the loaded value from the repeater's load_value() method -- an array of rows keyed by sub-field key, not the raw row count stored in the database.

Method of the class: Localization{}

No Hooks.

Returns

Array. Array of row objects.

Usage

$Localization = new Localization();
$Localization->serialize_repeater_value( $field, $value, $post_id );
$field(array) (required)
The repeater field array.
$value(mixed) (required)
The loaded value (array of rows from load_value).
$post_id(int) (required)
The post ID.

Changelog

Since 6.8.1 Introduced.

Localization::serialize_repeater_value() code ACF 6.8.8

public function serialize_repeater_value( $field, $value, $post_id ) {
	if ( empty( $field['sub_fields'] ) || ! is_array( $value ) ) {
		return array();
	}

	$result = array();

	foreach ( $value as $row ) {
		if ( ! is_array( $row ) ) {
			continue;
		}

		$serialized_row = array();

		foreach ( $field['sub_fields'] as $sub_field ) {
			$sub_value                           = isset( $row[ $sub_field['key'] ] ) ? $row[ $sub_field['key'] ] : null;
			$serialized_row[ $sub_field['key'] ] = $this->serialize_field_value( $sub_field, $sub_value, $post_id );
		}

		$result[] = $serialized_row;
	}

	return $result;
}