How can I get the order ID in WooCommerce?

2019-03-24 16:58发布

How do I retrieve the order ID in WooCommerce?

5条回答
劳资没心,怎么记你
2楼-- · 2019-03-24 17:35

I didnt test it and dont know were you need it, but:

$order = new WC_Order(post->ID);
echo $order->get_order_number();

Let me know if it works. I belive order number echoes with the "#" but you can split that if only need only the number.

查看更多
【Aperson】
3楼-- · 2019-03-24 17:49
$order = new WC_Order( $post_id ); 

If you

echo $order->id;

then you'll be returned the id of the post from which the order is made. As you've already got that, it's probably not what you want.

echo $order->get_order_number();

will return the id of the order (with a # in front of it). To get rid of the #,

echo trim( str_replace( '#', '', $order->get_order_number() ) );

as per the accepted answer.

查看更多
劳资没心,怎么记你
4楼-- · 2019-03-24 17:52

As of woocommerce 3.0

$order->id;

will not work, it will generate notice, use getter function:

$order->get_id();

The same applies for other woocommerce objects like procut.

查看更多
放荡不羁爱自由
5楼-- · 2019-03-24 17:57

it worked. Just modified it

global $woocommerce, $post;

$order = new WC_Order($post->ID);

//to escape # from order id 

$order_id = trim(str_replace('#', '', $order->get_order_number()));
查看更多
一夜七次
6楼-- · 2019-03-24 17:57

This is quite an old question now, but someone may come here looking for an answer:

echo $order->id;

This should return the order id without "#".

EDIT (feb/2018)

The current way of accomplishing this is by using:

$order->get_id();
查看更多
登录 后发表回答