WooCommerce Get Order Info total items from $order Object

Many a time, you need to repeat various coding operations while setting up the WooCommerce. Such repetitive actions are completely a waste of time. One such coding operation is ‘How to get _____ if I have the $order variable/object?’. In this article, we will learn coding operations to enable WooCommerce Get Order Info total items from order Object function. 

A few more repetitive coding operations are listed herein. ‘How can I get the order total’? Or ‘How can I get the order ID’? , are a few instances. In the same way, a repetitive action is also required for Order items, Customer ID, billing info, etc. It also includes total refunds, payment methods, and so on. 

In case you are having the $order_id available, you can ‘get’ the order object with the WooCommerce function. You need to apply the wc_get_order function. 

Besides this, you can also get the $order information in your email template. In such a way, you can show up additional $order information in the transactional messages. Further, it can also trigger up the custom functions.

1. You can access the $order variable 

You can use hooks (do_action and apply_filters) which includes using additional arguments. These are then passed on to the WooCommerce function. This way, you will be able to use the ‘$order’ object. You need to follow the below steps to enable WooCommerce Get Order Info total items from order Object function.

Here is the code to get the relevant order information:

// Get Order ID and Key
$order->get_id();
$order->get_order_key();
 
// Get Order Totals $0.00
$order->get_formatted_order_total();
$order->get_cart_tax();
$order->get_currency();
$order->get_discount_tax();
$order->get_discount_to_display();
$order->get_discount_total();
$order->get_fees();
$order->get_formatted_line_subtotal();
$order->get_shipping_tax();
$order->get_shipping_total();
$order->get_subtotal();
$order->get_subtotal_to_display();
$order->get_tax_location();
$order->get_tax_totals();
$order->get_taxes();
$order->get_total();
$order->get_total_discount();
$order->get_total_tax();
$order->get_total_refunded();
$order->get_total_tax_refunded();
$order->get_total_shipping_refunded();
$order->get_item_count_refunded();
$order->get_total_qty_refunded();
$order->get_qty_refunded_for_item();
$order->get_total_refunded_for_item();
$order->get_tax_refunded_for_item();
$order->get_total_tax_refunded_by_rate_id();
$order->get_remaining_refund_amount();
  
// Get and Loop Over Order Items
foreach ( $order->get_items() as $item_id => $item ) {
   $product_id = $item->get_product_id();
   $variation_id = $item->get_variation_id();
   $product = $item->get_product();
   $name = $item->get_name();
   $quantity = $item->get_quantity();
   $subtotal = $item->get_subtotal();
   $total = $item->get_total();
   $tax = $item->get_subtotal_tax();
   $taxclass = $item->get_tax_class();
   $taxstat = $item->get_tax_status();
   $allmeta = $item->get_meta_data();
   $somemeta = $item->get_meta( '_whatever', true );
   $type = $item->get_type();
}
 
// Other Secondary Items Stuff
$order->get_items_key();
$order->get_items_tax_classes();
$order->get_item_count();
$order->get_item_total();
$order->get_downloadable_items();
  
// Get Order Lines
$order->get_line_subtotal();
$order->get_line_tax();
$order->get_line_total();
  
// Get Order Shipping
$order->get_shipping_method();
$order->get_shipping_methods();
$order->get_shipping_to_display();
  
// Get Order Dates
$order->get_date_created();
$order->get_date_modified();
$order->get_date_completed();
$order->get_date_paid();
  
// Get Order User, Billing & Shipping Addresses
$order->get_customer_id();
$order->get_user_id();
$order->get_user();
$order->get_customer_ip_address();
$order->get_customer_user_agent();
$order->get_created_via();
$order->get_customer_note();
$order->get_address_prop();
$order->get_billing_first_name();
$order->get_billing_last_name();
$order->get_billing_company();
$order->get_billing_address_1();
$order->get_billing_address_2();
$order->get_billing_city();
$order->get_billing_state();
$order->get_billing_postcode();
$order->get_billing_country();
$order->get_billing_email();
$order->get_billing_phone();
$order->get_shipping_first_name();
$order->get_shipping_last_name();
$order->get_shipping_company();
$order->get_shipping_address_1();
$order->get_shipping_address_2();
$order->get_shipping_city();
$order->get_shipping_state();
$order->get_shipping_postcode();
$order->get_shipping_country();
$order->get_address();
$order->get_shipping_address_map_url();
$order->get_formatted_billing_full_name();
$order->get_formatted_shipping_full_name();
$order->get_formatted_billing_address();
$order->get_formatted_shipping_address();
  
// Get Order Payment Details
$order->get_payment_method();
$order->get_payment_method_title();
$order->get_transaction_id();
  
// Get Order URLs
$order->get_checkout_payment_url();
$order->get_checkout_order_received_url();
$order->get_cancel_order_url();
$order->get_cancel_order_url_raw();
$order->get_cancel_endpoint();
$order->get_view_order_url();
$order->get_edit_order_url();
  
// Get Order Status
$order->get_status();

2. You can access the $order_id variable

In case you are having access to the order ID, you must get the order object beforehand. After that, you can repeat the above steps given. 

// Get $order object from order ID
$order = wc_get_order( $order_id );
// Now you have access to (see above)...
if ( $order ) {
   $order->get_formatted_order_total( );
   // etc.
   // etc.
}

3. You can access the $email variable

You will have access to $email object if you have been working with WooCommerce emails. So, in this scenario, you need to follow an extra step as given below. Once followed, repeat the steps given above. 

// Get $order object from $email
$order = $email->object;
// Now you have access to (see above)...
if ( $order ) {
   $order->get_id();
   $order->get_formatted_order_total( );
   // etc.
   // etc.
}

Also Read, A complete guide on WooCommerce Add to Cart Plus & Minus Buttons

WooCommerce Rename ‘Add to Cart’ Button if product already at cart