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