ACF\Pro\Datastore

Localization::serialize_group_valuepublicACF 6.8.1

Serializes a group field value.

When called from a parent complex field (repeater, flex content), $value is the already-loaded array from load_value() keyed by sub-field key. For top-level groups, $value may also be a loaded array. Falls back to loading from the database when the loaded value is not available.

Method of the class: Localization{}

No Hooks.

Returns

Array|\stdClass. Associative array of sub-field values keyed by field key.

Usage

$Localization = new Localization();
$Localization->serialize_group_value( $field, $value, $post_id );
$field(array) (required)
The group field array.
$value(mixed) (required)
The loaded value (array of sub-field values, or raw).
$post_id(int) (required)
The post ID.

Changelog

Since 6.8.1 Introduced.

Localization::serialize_group_value() code ACF 6.8.8

public function serialize_group_value( $field, $value, $post_id ) {
	if ( empty( $field['sub_fields'] ) ) {
		return new \stdClass();
	}

	$result = array();

	foreach ( $field['sub_fields'] as $sub_field ) {
		if ( is_array( $value ) && array_key_exists( $sub_field['key'], $value ) ) {
			$sub_value = $value[ $sub_field['key'] ];
		} else {
			$sub_field['name'] = $field['name'] . '_' . $sub_field['name'];
			$sub_value         = acf_get_value( $post_id, $sub_field );
		}

		$result[ $sub_field['key'] ] = $this->serialize_field_value( $sub_field, $sub_value, $post_id );
	}

	return $result;
}