Woocommerce REST API extending order response
i have the same requirement, add new value to "line_items" in order response
am using wc api v2
https://website.com/wp-json/wc/v2/orders
function get_product_order_image( $response, $object, $request ) { if( empty( $response->data ) ) return $response; $order_pid= $response->data['line_items'][0]['product_id']; $l_w_product_meta = get_post_meta($response->data['line_items'][0]['product_id']); $order_imgUrl= wp_get_attachment_url( $l_w_product_meta['_thumbnail_id'][0], 'full' ); $response->data['line_items'][0]['cover_image'] = $order_imgUrl; return $response;} add_filter( "woocommerce_rest_prepare_shop_order_object", array( $this, "get_product_order_image"), 10, 3 );
Resultcover image added to line item result
i hope this will help someone in future.
REST API hook for add new value (product image) to "line_items" in order response for simple product and variable product both
Also Use for multiple products
function get_product_order_image( $response, $object, $request ) { if( empty( $response->data ) ) return $response; $images = array(); foreach($response->data['line_items'] as $key => $productItems){ $productID = $productItems['product_id']; $variationID = $productItems['variation_id']; if($variationID == 0){ $thumbnailID = get_post_meta( $productID, '_thumbnail_id', true); $attachment = wp_get_attachment_image_src($thumbnailID, 'woocommerce_thumbnail' ); $image = $attachment[0]; }else{ $variation = new WC_Product_Variation( $variationID ); $image_id = $variation->get_image_id(); $attachment = wp_get_attachment_image_src($image_id, 'woocommerce_thumbnail' ); $image = $attachment[0]; } $response->data['line_items'][$key]['image'] = $image; } return $response;} add_filter( "woocommerce_rest_prepare_shop_order_object", "get_product_order_image", 10, 3 );
Request:
wp-json/wc/v3/orders
wp-json/wc/v3/orders/XXX
wp-json/wc/v3/orders/?customers=XXX