How to Get Order Details by Order ID

In early 2008 when I started working in WordPress/WooCommerce I hardly know StackOverflow and WooCommerce API, so I had to write several API for some of our web service. Then I had written this function to get order details by order/post ID. Hope this function will be helpful for you as well.
WooCommerce 3.x
or above
WooCommerce 2.6.x
or below
Okay now, how do I use it?
First add getOrderDetailById()
to your active theme functions.php
or to any active plugin PHP file.
Then call getOrderDetailById()
from anywhere in your app by passing the Order ID like below.
Using WooCommerce Shipment Tracking and want’s to add that as well?
WooCommerce Shipment Tracking is an awesome paid plugin that you must have! If you want to add this in your custom order detail function then just add below code in above mentions.
is this work with WooCommerce 3.2.4?
Yes, follow code under “WooCommerce 3.x or above” section.
worked liked a charm!
$order = wc_get_order(20);
while using above code,i m getting error as
Please let me know, where i did mistake.
Thanks in advance.
Do you have any order with #20?
thanks!
Hi, I’m getting this:
Warning: Missing argument 4 for WC_PB_REST_API::legacy_order_response() in (…)/wp-content/plugins/woocommerce-product-bundles/includes/class-wc-pb-rest-api.php on line 1074
I think you need to contact the plugin author.
Nice post! I solve my issue
Where can i put this code?
I tried put in public_html/check.php and i dont understand.
Sorry for inconvenience
Hi Alex,
You have to put this code into your active theme
functions 2.php
file or into plugin file.May I simply say what a comfort to find someone that genuinely understands what they’re discussing on the internet.
You certainly understand how to bring an issue to light and make it important.
A lot more people must look at this and understand this side of your story.
I was surprised you are not more popular given that you certainly possess the gift.
(y)
Hi, I’m getting this:
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function WC_PB_REST_API::legacy_order_response(), 3 passed
Hi Kashyap,
Which WooCommerce version you are using?
I want to display customer information on order page for which I am adding this code in functions.php but it is not showing me the actual output
add_action( 'woocommerce_admin_order_data_after_billing_address', 'order_customer_information');
function order_customer_information( $order ){
global $post;
$customer_user = get_post_meta( $post->ID, '_customer_user', true );
echo ''.__('Order Customer name').': ' . get_user_meta( $customer_user, 'customername', true ) . '';
}
Here is the refernce that I am using to implement the whole process Display Customer Order Details
Hi Amanda,
I have couple of question over here.
#1: Are you saving customername, because by default no such key is present in usermeta table
#2: Why are you using
$post
where you have$order
I have modified your code a little bit and it worked for me, here is the sample:
add_action('woocommerce_admin_order_data_after_billing_address', 'order_customer_information');
function order_customer_information($order) {
if(!empty($order->get_user_id()))
{
echo __('Order Customer Name: ') . get_user_meta($order->get_user_id(), 'nickname', true); //replace the key with your custom key
}
}