acf_rest_sanitize_user_sub_fields()
Replaces User subfield data with REST-safe values.
Walks the subfields of a container field (Group, Clone, Repeater layout row, or Flexible Content layout row), delegating each subfield's value to acf_rest_sanitize_user_data() so that any nested User field data is reduced to IDs.
No Hooks.
Returns
Mixed.
Usage
acf_rest_sanitize_user_sub_fields( $formatted_value, $raw_value, $sub_fields, $output_property );
- $formatted_value(mixed) (required)
- The formatted parent value.
- $raw_value(mixed) (required)
- The raw parent value.
- $sub_fields(array) (required)
- The parent field's subfields.
- $output_property(string) (required)
- The subfield property used as the output key.
Changelog
| Since 6.8.7 | Introduced. |
acf_rest_sanitize_user_sub_fields() acf rest sanitize user sub fields code ACF 6.8.8
function acf_rest_sanitize_user_sub_fields( $formatted_value, $raw_value, $sub_fields, $output_property ) {
if ( ! is_array( $formatted_value ) || ! is_array( $sub_fields ) ) {
return $formatted_value;
}
$raw_value = is_array( $raw_value ) ? $raw_value : array();
foreach ( $sub_fields as $sub_field ) {
if ( ! is_array( $sub_field ) ) {
continue;
}
$output_key = array_key_exists( $output_property, $sub_field )
? $sub_field[ $output_property ]
: $sub_field['name'] ?? '';
if ( '' === $output_key || ! array_key_exists( $output_key, $formatted_value ) ) {
continue;
}
$raw_key = $sub_field['key'] ?? '';
$raw_sub_value = '' !== $raw_key && array_key_exists( $raw_key, $raw_value )
? $raw_value[ $raw_key ]
: null;
$formatted_value[ $output_key ] = acf_rest_sanitize_user_data(
$formatted_value[ $output_key ],
$raw_sub_value,
$sub_field
);
}
return $formatted_value;
}