Automattic\WooCommerce\StoreApi\Schemas\V1
BillingAddressSchema::get_item_response
Convert a term object into an object suitable for the response.
Method of the class: BillingAddressSchema{}
No Hooks.
Returns
Array.
Usage
$BillingAddressSchema = new BillingAddressSchema(); $BillingAddressSchema->get_item_response( $address );
- $address(WC_Order|\WC_Customer) (required)
- An object with billing address.
BillingAddressSchema::get_item_response() BillingAddressSchema::get item response code WC 10.8.1
public function get_item_response( $address ) {
$validation_util = new ValidationUtils();
if ( ( $address instanceof \WC_Customer || $address instanceof \WC_Order ) ) {
$billing_country = $address->get_billing_country();
$billing_state = $address->get_billing_state();
if ( ! $validation_util->validate_state( $billing_state, $billing_country ) ) {
$billing_state = '';
}
$additional_address_fields = $this->additional_fields_controller->get_all_fields_from_object( $address, 'billing' );
$address_object = \array_merge(
[
'first_name' => $address->get_billing_first_name(),
'last_name' => $address->get_billing_last_name(),
'company' => $address->get_billing_company(),
'address_1' => $address->get_billing_address_1(),
'address_2' => $address->get_billing_address_2(),
'city' => $address->get_billing_city(),
'state' => $billing_state,
'postcode' => $address->get_billing_postcode(),
'country' => $billing_country,
'email' => $address->get_billing_email(),
'phone' => $address->get_billing_phone(),
],
$additional_address_fields
);
// Add any missing keys from additional_fields_controller to the address response.
foreach ( $this->additional_fields_controller->get_address_fields_keys() as $field ) {
if ( isset( $address_object[ $field ] ) ) {
continue;
}
$address_object[ $field ] = '';
}
foreach ( $address_object as $key => $value ) {
if ( isset( $this->get_properties()[ $key ]['type'] ) && 'boolean' === $this->get_properties()[ $key ]['type'] ) {
$address_object[ $key ] = (bool) $value;
} else {
$address_object[ $key ] = $this->prepare_html_response( $value );
}
}
return $address_object;
}
throw new RouteException(
'invalid_object_type',
sprintf(
/* translators: Placeholders are class and method names */
__( '%1$s requires an instance of %2$s or %3$s for the address', 'woocommerce' ),
'BillingAddressSchema::get_item_response',
'WC_Customer',
'WC_Order'
),
500
);
}