Automattic\WooCommerce\StoreApi\Schemas\V1

AbstractAddressSchema::sanitize_callback()publicWC 1.0

Sanitize and format the given address object.

Метод класса: AbstractAddressSchema{}

Хуков нет.

Возвращает

Массив.

Использование

$AbstractAddressSchema = new AbstractAddressSchema();
$AbstractAddressSchema->sanitize_callback( $address, $request, $param );
$address(массив) (обязательный)
Value being sanitized.
$request(\WP_REST_Request) (обязательный)
The Request.
$param(строка) (обязательный)
The param being sanitized.

Код AbstractAddressSchema::sanitize_callback() WC 8.7.0

public function sanitize_callback( $address, $request, $param ) {
	$validation_util   = new ValidationUtils();
	$sanitization_util = new SanitizationUtils();
	$address           = (array) $address;
	$field_schema      = $this->get_properties();
	$address           = array_reduce(
		array_keys( $address ),
		function( $carry, $key ) use ( $address, $validation_util, $field_schema ) {
			switch ( $key ) {
				case 'country':
					$carry[ $key ] = wc_strtoupper( sanitize_text_field( wp_unslash( $address[ $key ] ) ) );
					break;
				case 'state':
					$carry[ $key ] = $validation_util->format_state( sanitize_text_field( wp_unslash( $address[ $key ] ) ), $address['country'] );
					break;
				case 'postcode':
					$carry[ $key ] = $address['postcode'] ? wc_format_postcode( sanitize_text_field( wp_unslash( $address['postcode'] ) ), $address['country'] ) : '';
					break;
				default:
					$carry[ $key ] = rest_sanitize_value_from_schema( wp_unslash( $address[ $key ] ), $field_schema[ $key ], $key );
					break;
			}
			if ( $this->additional_fields_controller->is_field( $key ) ) {
				$carry[ $key ] = $this->additional_fields_controller->sanitize_field( $key, $carry[ $key ] );
			}
			return $carry;
		},
		[]
	);

	return $sanitization_util->wp_kses_array( $address );
}