How to get all order details in wordpress/woocommerce?

I am using woo-commerce and trying to get all the order details from database.I am new to it and cant make it happened.I have already created order_details.php template where I can get all orders data.

Can anyone help me out?

Related posts

4 comments

  1. Try This Code.

    $args = array(
      'post_type' => 'shop_order',
     'posts_per_page' => '-1'
    );
    $my_query = new WP_Query($args);
    
    $orders = $my_query->posts;
    echo "</pre>";
    print_r($orders);
    echo "<pre>";
    

    Customize As par Ur Requerment.

  2. Since Woocommerce mega major Update 3.0+ things have changed quite a lot:

    • WC_Order properties can’t be access directly as before and will throw some errors.
    • New WC_Order and WC_Abstract_Order getters and setters methods are now needed.
    • There is some New classes for Order items:

      • WC_Order_Item class.

      • WC_Order_Item_Product class.

    So also the Order items properties will not be accessible as before in a foreach loop and you will have to use this specific getter and setter methods instead

    // Get an instance of the WC_Order object (same as before)
    $order = wc_get_order( $order_id );
    
    // Get the order ID
    $order_id = $order->get_id();
    
    // Get the custumer ID
    $order_id = $order->get_user_id();
    

    Get and access to the order data properties (in an array of values):

    $order = wc_get_order( $order_id );
    
    $order_data = $order->get_data(); // The Order data
    
    $order_id = $order_data['id'];
    $order_parent_id = $order_data['parent_id'];
    $order_status = $order_data['status'];
    $order_currency = $order_data['currency'];
    $order_version = $order_data['version'];
    $order_payment_method = $order_data['payment_method'];
    $order_payment_method_title = $order_data['payment_method_title'];
    $order_payment_method = $order_data['payment_method'];
    $order_payment_method = $order_data['payment_method'];
    
    ## Creation and modified WC_DateTime Object date string ##
    
    // Using a formated date ( with php date() function as method)
    $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s');
    $order_date_modified = $order_data['date_modified']->date('Y-m-d H:i:s');
    
    // Using a timestamp ( with php getTimestamp() function as method)
    $order_timestamp_created = $order_data['date_created']->getTimestamp();
    $order_timestamp_modified = $order_data['date_modified']->getTimestamp();
    
    
    $order_discount_total = $order_data['discount_total'];
    $order_discount_tax = $order_data['discount_tax'];
    $order_shipping_total = $order_data['shipping_total'];
    $order_shipping_tax = $order_data['shipping_tax'];
    $order_total = $order_data['cart_tax'];
    $order_total_tax = $order_data['total_tax'];
    $order_customer_id = $order_data['customer_id']; // ... and so on
    
    ## BILLING INFORMATION:
    
    $order_billing_first_name = $order_data['billing']['first_name'];
    $order_billing_last_name = $order_data['billing']['last_name'];
    $order_billing_company = $order_data['billing']['company'];
    $order_billing_address_1 = $order_data['billing']['address_1'];
    $order_billing_address_2 = $order_data['billing']['address_2'];
    $order_billing_city = $order_data['billing']['city'];
    $order_billing_state = $order_data['billing']['state'];
    $order_billing_postcode = $order_data['billing']['postcode'];
    $order_billing_country = $order_data['billing']['country'];
    $order_billing_email = $order_data['billing']['email'];
    $order_billing_phone = $order_data['billing']['phone'];
    
    ## SHIPPING INFORMATION:
    
    $order_shipping_first_name = $order_data['shipping']['first_name'];
    $order_shipping_last_name = $order_data['shipping']['last_name'];
    $order_shipping_company = $order_data['shipping']['company'];
    $order_shipping_address_1 = $order_data['shipping']['address_1'];
    $order_shipping_address_2 = $order_data['shipping']['address_2'];
    $order_shipping_city = $order_data['shipping']['city'];
    $order_shipping_state = $order_data['shipping']['state'];
    $order_shipping_postcode = $order_data['shipping']['postcode'];
    $order_shipping_country = $order_data['shipping']['country'];
    

    Get the order items and access the data with WC_Order_Item_Product and WC_Order_Item methods:

    $order = wc_get_order($order_id);
    
    // Iterating through each WC_Order_Item_Product objects
    foreach ($order->get_items() as $item_key => $item_values):
    
        ## Using WC_Order_Item methods ##
    
        // Item ID is directly accessible from the $item_key in the foreach loop or
        $item_id = $item_values->get_id();
    
        ## Using WC_Order_Item_Product methods ##
    
        $item_name = $item_values->get_name(); // Name of the product
        $item_type = $item_values->get_type(); // Type of the order item ("line_item")
    
        $product_id = $item_values->get_product_id(); // the Product id
        $wc_product = $item_values->get_product(); // the WC_Product object
        ## Access Order Items data properties (in an array of values) ##
        $item_data = $item_values->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'];
    
    endforeach;
    
  3. $my_course_query = new WP_Query(array('post_type'=>'shop_order','post_status'=>'wc-completed'));

    Change status to woocoommerce status

  4. You can user below code

    require(dirname(__FILE__) . '/wp-load.php');
    
    global $wpdb;
    
        $orders = get_posts( array(
            'post_type'   => 'shop_order',
            'posts_per_page' => '-1'
    ) );
    

    You need to include wp-load.php file

    require(dirname(__FILE__) . '/wp-load.php');
    

    and add global variable as global $wpdb; before this code.

Comments are closed.