如何用产品名称创建Woocoomerce订单查询?

时间:2016-02-08 09:04:44

标签: wordpress woocommerce woothemes

您好我需要获得属于或包含A PRODUCT的所有订单。即如果product1是我的产品名称,那么我需要获得包含该产品的循环中的所有订单。 为了获得订单明细,我使用以下查询

                      $args = array(

                    'post_type'         => 'shop_order',

                    'post_status'       => 'publish'
                         );
          $loop=new WP_Query($args); 
         while($loop->have_posts()): $loop->the_post(); 
         $order_id=get_the_ID();
         $order = new WC_Order($order_id);

        ..details i fetched from query ..


            endwhile ;

获取项目详细信息我可以使用$order->get_items(); 我想

(1)这是在循环中获取订单详细信息的最佳方法吗?

(2)如何获取属于product1的订单[其中product1是我的产品名称]。?

有人知道,请帮忙。

1 个答案:

答案 0 :(得分:2)

对于第一个问题,你真的需要考虑它,对于第二个问题你可以使用以下,

<?php
  global $wpdb;   
  $produto_id = 22777; // ID do produto
  $consulta = "SELECT order_id FROM {$wpdb->prefix}woocommerce_order_itemmeta woim 
   LEFT JOIN {$wpdb->prefix}woocommerce_order_items oi 
    ON woim.order_item_id = oi.order_item_id 
    WHERE meta_key = '_product_id' AND meta_value = %d
    GROUP BY order_id;";
  $order_ids = $wpdb->get_col( $wpdb->prepare( $consulta, $produto_id ) );
  if( $order_ids ) {
             $args = array(
            'post_type'       =>'shop_order',
            'post__in'   => $order_ids,
            'post_status'    => 'publish',
            'posts_per_page' =>  20,
            'order'          => 'DESC',             
            'tax_query' => array( 
            array( 'taxonomy' => 'shop_order_status',
                   'field' => 'slug',
                   'terms' => array ('Pending' , 'Failed' , 'Processing' , 'Completed', 'On-Hold' , 'Cancelled' , 'Refunded')
                  ) 
                )           
            );
            $orders = new WP_Query( $args );
            }
?> 

有关更多信息,请参阅http://zjstech.com/basic-woocommerce-mysql-queries-for-orders-products-and-categories/