Automattic\WooCommerce\Internal\RestApi\Routes\V4\Orders\Schema
OrderSchema::get_item_response │ public │ WC 1.0
Get an item response.
Method of the class: OrderSchema{}
No Hooks.
Returns
Array.
Usage
$OrderSchema = new OrderSchema(); $OrderSchema->get_item_response( $order, $request, $include_fields ): array;
- $order(WC_Order) (required)
- Order instance.
- $request(WP_REST_Request) (required)
- Request object.
- $include_fields(array)
- Fields to include in the response.
Default:array()
OrderSchema::get_item_response() OrderSchema::get item response code WC 10.8.1
public function get_item_response( $order, WP_REST_Request $request, array $include_fields = array() ): array {
$dp = is_null( $request['num_decimals'] ) ? wc_get_price_decimals() : absint( $request['num_decimals'] );
$data = array(
'id' => $order->get_id(),
'parent_id' => $order->get_parent_id(),
'number' => $order->get_order_number(),
'order_key' => $order->get_order_key(),
'created_via' => $order->get_created_via(),
'version' => $order->get_version(),
'status' => OrderUtil::remove_status_prefix( $order->get_status() ),
'currency' => $order->get_currency(),
'currency_symbol' => html_entity_decode( get_woocommerce_currency_symbol( $order->get_currency() ), ENT_QUOTES ),
'date_created' => wc_rest_prepare_date_response( $order->get_date_created(), false ),
'date_created_gmt' => wc_rest_prepare_date_response( $order->get_date_created() ),
'date_modified' => wc_rest_prepare_date_response( $order->get_date_modified(), false ),
'date_modified_gmt' => wc_rest_prepare_date_response( $order->get_date_modified() ),
'discount_total' => wc_format_decimal( $order->get_discount_total(), $dp ),
'discount_tax' => wc_format_decimal( $order->get_discount_tax(), $dp ),
'shipping_total' => wc_format_decimal( $order->get_shipping_total(), $dp ),
'shipping_tax' => wc_format_decimal( $order->get_shipping_tax(), $dp ),
'cart_tax' => wc_format_decimal( $order->get_cart_tax(), $dp ),
'total' => wc_format_decimal( $order->get_total(), $dp ),
'total_tax' => wc_format_decimal( $order->get_total_tax(), $dp ),
'prices_include_tax' => $order->get_prices_include_tax(),
'customer_id' => $order->get_customer_id(),
'customer_ip_address' => $order->get_customer_ip_address(),
'customer_user_agent' => $order->get_customer_user_agent(),
'customer_note' => $order->get_customer_note(),
'billing' => array(
'first_name' => $order->get_billing_first_name(),
'last_name' => $order->get_billing_last_name(),
'company' => $order->get_billing_company(),
'address_1' => $order->get_billing_address_1(),
'address_2' => $order->get_billing_address_2(),
'city' => $order->get_billing_city(),
'state' => $order->get_billing_state(),
'postcode' => $order->get_billing_postcode(),
'country' => $order->get_billing_country(),
'email' => $order->get_billing_email(),
'phone' => $order->get_billing_phone(),
),
'shipping' => array(
'first_name' => $order->get_shipping_first_name(),
'last_name' => $order->get_shipping_last_name(),
'company' => $order->get_shipping_company(),
'address_1' => $order->get_shipping_address_1(),
'address_2' => $order->get_shipping_address_2(),
'city' => $order->get_shipping_city(),
'state' => $order->get_shipping_state(),
'postcode' => $order->get_shipping_postcode(),
'country' => $order->get_shipping_country(),
'phone' => $order->get_shipping_phone(),
),
'payment_method' => $order->get_payment_method(),
'payment_method_title' => $order->get_payment_method_title(),
'transaction_id' => $order->get_transaction_id(),
'date_paid' => wc_rest_prepare_date_response( $order->get_date_paid(), false ),
'date_paid_gmt' => wc_rest_prepare_date_response( $order->get_date_paid() ),
'date_completed' => wc_rest_prepare_date_response( $order->get_date_completed(), false ),
'date_completed_gmt' => wc_rest_prepare_date_response( $order->get_date_completed() ),
'cart_hash' => $order->get_cart_hash(),
'payment_url' => $order->get_checkout_payment_url(),
'is_editable' => $order->is_editable(),
'needs_payment' => $order->needs_payment(),
'needs_processing' => $order->needs_processing(),
'fulfillment_status' => FulfillmentUtils::get_order_fulfillment_status( $order ),
);
if ( in_array( 'refund_total', $include_fields, true ) ) {
$data['refund_total'] = wc_format_decimal( $order->get_total_refunded(), $dp );
}
if ( in_array( 'refund_tax', $include_fields, true ) ) {
$data['refund_tax'] = wc_format_decimal( $order->get_total_tax_refunded(), $dp );
}
if ( in_array( 'line_items', $include_fields, true ) ) {
$line_items = $order->get_items( OrderItemType::LINE_ITEM );
$data['line_items'] = array();
foreach ( $line_items as $line_item ) {
$data['line_items'][] = $this->order_item_schema->get_item_response( $line_item, $request );
}
}
if ( in_array( 'shipping_lines', $include_fields, true ) ) {
$line_items = $order->get_items( OrderItemType::SHIPPING );
$data['shipping_lines'] = array();
foreach ( $line_items as $line_item ) {
$data['shipping_lines'][] = $this->order_shipping_schema->get_item_response( $line_item, $request );
}
}
if ( in_array( 'coupon_lines', $include_fields, true ) ) {
$line_items = $order->get_items( OrderItemType::COUPON );
$data['coupon_lines'] = array();
foreach ( $line_items as $line_item ) {
$data['coupon_lines'][] = $this->order_coupon_schema->get_item_response( $line_item, $request );
}
}
if ( in_array( 'fee_lines', $include_fields, true ) ) {
$line_items = $order->get_items( OrderItemType::FEE );
$data['fee_lines'] = array();
foreach ( $line_items as $line_item ) {
$data['fee_lines'][] = $this->order_fee_schema->get_item_response( $line_item, $request );
}
}
if ( in_array( 'tax_lines', $include_fields, true ) ) {
$line_items = $order->get_items( OrderItemType::TAX );
$data['tax_lines'] = array();
foreach ( $line_items as $line_item ) {
$data['tax_lines'][] = $this->order_tax_schema->get_item_response( $line_item, $request );
}
}
if ( in_array( 'meta_data', $include_fields, true ) ) {
$filtered_meta_data = $this->filter_internal_meta_keys( $order->get_meta_data() );
$data['meta_data'] = array();
foreach ( $filtered_meta_data as $meta_item ) {
$data['meta_data'][] = array(
'id' => $meta_item->id,
'key' => $meta_item->key,
'value' => $meta_item->value,
);
}
}
// Add COGS data.
if ( $this->cogs_is_enabled() && in_array( 'cost_of_goods_sold', $include_fields, true ) ) {
$data['cost_of_goods_sold']['total_value'] = $order->get_cogs_total_value();
}
$data = array_intersect_key( $data, array_flip( $include_fields ) );
return $data;
}