How can I get the order ID in WooCommerce?

How do I retrieve the order ID in WooCommerce?

Related posts

Leave a Reply

6 comments

  1. Current method:

    The current way of accomplishing this is by using this function:

    $order->get_id();
    

    That should return the order id without “#”.

    Old method:

    In older versions of WooCommerce, you may need to access it as a property instead:

    echo $order->id;
    
  2. 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()));
    
  3. 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.

  4. 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. $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.