get_id() ); if ( ! empty( $shipments ) ) { return $this->append_shipment_to_order_data( $response, $order, $request, $shipments ); } return $response; } /** * Appends shipment data to order in REST API response. * * @param WP_REST_Response $response . * @param WC_Order $order . * @param WP_REST_Request $request . * @param WPDesk_Flexible_Shipping_Shipment[] $shipments . * * @return WP_REST_Response */ private function append_shipment_to_order_data( $response, $order, $request, $shipments ) { $response_data = $response->get_data(); if ( empty( $response_data[ self::REST_API_DATA_KEY ] ) ) { $response_data[ self::REST_API_DATA_KEY ] = array(); } $providers = WPDesk_Flexible_Shipping_Rest_Api_Order_Data_Providers_Factory::get_providers(); foreach ( $shipments as $shipment ) { $integration = $shipment->get_integration(); $data_provider = $providers->get_provider_for_integration( $integration ); $response_data[ self::REST_API_DATA_KEY ][] = $data_provider->get_data_from_shipment( $shipment ); } $response->set_data( $response_data ); return $response; } }