acf_rest_sanitize_user_sub_fields()ACF 6.8.7

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.
Since ACF 6.8.7

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;
}