ACF\Pro\Datastore
Localization::serialize_group_value
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() 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;
}