Makers Byte
Published in

Makers Byte

How to get WooCommerce Order Information?

A snippet of code that can help you get the WooCommerce order details by order id


As WooCommerce developer, every day I repeat many coding operations that waste a lot of time. One of them is: “How to get order information if I have the $order variable/object?”. Well here are solutions to the problem.

Once you have the WooCommerce $order object, you can easily access any data or information contained within any given WooCommerce order.

For this tutorial, you will be adding your PHP to the functions.php file.

#1. In case you have the order variable already, then all you need is:

Hooks (do_action and apply_filters) use additional arguments which are passed on to the function. If they allow you to use the “$order” object you’re in business. Here’s how to get all the order information:

// Get Order ID

// Get Order Totals $0.00

// Get Order Items

// Get Order Lines

// Get Order Shipping

// Get Order Dates

// Get Order User, Billing & Shipping Addresses

// Get Order Payment Details

// Get Order URLs

// Get Order Status

// source:

Note — These are simple methods for accessing any order information, as outlined. Make sure you assign your order data to a variable.

#2. In case you have the order id and want to get the rest of the details:

// Get $order object from order ID
$order = wc_get_order( $order_id );

// Now you have access to (refer above items)...
$order->get_formatted_order_total( )
// etc.

Another way of getting the above variables:

// Get an instance of the WC_Order object
$order = wc_get_order($order_id);

// Iterating through each WC_Order_Item_Product objects
foreach ($order->get_items() as $item_key => $item ):

## Using WC_Order_Item methods ##

// Item ID is directly accessible from the $item_key in the foreach loop or
$item_id = $item->get_id();

## Using WC_Order_Item_Product methods ##

$product = $item->get_product(); // Get the WC_Product object

$product_id = $item->get_product_id(); // the Product id
$variation_id = $item->get_variation_id(); // the Variation id

$item_type = $item->get_type(); // Type of the order item ("line_item")

$item_name = $item->get_name(); // Name of the product
$quantity = $item->get_quantity();
$tax_class = $item->get_tax_class();
$line_subtotal = $item->get_subtotal(); // Line subtotal (non discounted)
$line_subtotal_tax = $item->get_subtotal_tax(); // Line subtotal tax (non discounted)
$line_total = $item->get_total(); // Line total (discounted)
$line_total_tax = $item->get_total_tax(); // Line total tax (discounted)

## Access Order Items data properties (in an array of values) ##
$item_data = $item->get_data();

$product_name = $item_data['name'];
$product_id = $item_data['product_id'];
$variation_id = $item_data['variation_id'];
$quantity = $item_data['quantity'];
$tax_class = $item_data['tax_class'];
$line_subtotal = $item_data['subtotal'];
$line_subtotal_tax = $item_data['subtotal_tax'];
$line_total = $item_data['total'];
$line_total_tax = $item_data['total_tax'];

// Get data from The WC_product object using methods (examples)
$product = $item->get_product(); // Get the WC_Product object
$product_type = $product->get_type();
$product_sku = $product->get_sku();
$product_price = $product->get_price();
$stock_quantity = $product->get_stock_quantity();


#3. You have access to $email variable

If you are working with WooCommerce emails, often you will have the $email object available as parameter. In order to get the object from that, you need an additional step. Then do the exact same things as above.

// Get $order object from $email

$order = $email->object;

// Now you have access to (see above)...

if ( $order ) {
$order->get_formatted_order_total( );
// etc.
// etc.

If you enjoyed this post…it would mean a lot to me if you could click on the “claps” icon…up to 50 claps allowed — Thank You!



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store