angga
angga

Reputation: 89

Get line item woocommerce order

I create html email template on woocomerce 3+ but i can't get line item by order id. I tried this but did not work for me.

 <?php
      $order = wc_get_order( $order_id );
      $order_items = $order->get_items();
          foreach ($order_items as $item_id => $item_data) {
          $product_name = $item_data['name'];
          $item_quantity = $order->wc_get_order_item_meta($item_id, '_qty', true);
          $item_total = $order->wc_get_order_item_meta($item_id, '_line_total', true);

          echo 'Product name: '.$product_name.' | Quantity: '.$item_quantity.' | Item total: '. $item_total;
      }
 ?>

Any help very much appreciated.

Thanks.

Upvotes: 6

Views: 10337

Answers (1)

Akshay Shah
Akshay Shah

Reputation: 3504

Try with below code

add_action('init','orderLineItem');
function orderLineItem()
{
    $orderId = 523; //put your dynamic order id or static id
    $order = wc_get_order( $orderId );
    foreach ( $order->get_items() as  $item_key => $item_values ) {
        $item_data = $item_values->get_data();
        echo $product_name = $item_data['name'];
        echo $quantity = $item_data['quantity'];
        echo $line_total = $item_data['total'];
    }
}

Upvotes: 6

Related Questions