Woocommerce REST API extending order response Woocommerce REST API extending order response wordpress wordpress

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