электронные письма покупателей woocommerce на frontend

я создал сайт с помощью WordPress и WooCommerce Plugin, и у меня есть успех, делающий пользователей публиковать продукты из интерфейса,
я хочу отображать заказы на продукт

как вы можете видеть на этом изображении
подробные изображения

i успех показывает общий объем продаж для продукта, теперь я хочу показать всем покупателям информацию о продукте /

до сих пор у меня есть этот код

<?php $p = $post->ID; $args = array( 'post_type' => 'shop_order', 'post_status' => 'publish', 'meta_key' => '_customer_user', 'posts_per_page' => '-1' ); $my_query = new WP_Query($args); $customer_orders = $my_query->posts; //print_r($customer_orders); foreach ($customer_orders as $customer_order) { $order = new WC_Order(); $order->populate($customer_order); $orderdata = (array) $order; $fields = array_values($orderdata); //print_r($fields); echo 'Status: '.$fields[1]; echo '<br>Date : '.$fields[2]; echo '<br>Email : '.$fields[16]; } ?> 

Этот код работает отлично, но он показывает подробную информацию обо всех продуктах

Что я хочу: показать информацию о продукте в зависимости от идентификатора продукта

поэтому я хочу отредактировать этот код, чтобы получить результаты в зависимости от post->id

 $p = $post->ID; $args = array( 'post_type' => 'shop_order', 'post_status' => 'publish', 'meta_key' => '_customer_user', 'posts_per_page' => '-1' ); 

Related of "электронные письма покупателей woocommerce на frontend"

Хорошо, поэтому, читая свой вопрос и предполагая, что $ post-> ID – это идентификатор продукта, который вы хотите отображать, содержит то, что вам нужно:

 <?php $products = array(); foreach (get_posts('post_type=shop_order&numberposts=-1&post_status=publish') as $order) { $order = new WC_Order($order->ID); foreach($order->get_items('line_item') as $item) { $product_id = (!empty($item['variation_id'])) ? $item['variation_id'] : $item['product_id']; $products[] = $product_id; } if (in_array($post->ID,$products)) { echo 'Status: '.$order->order_status; echo '<br>Date : '.$order->order_date; echo '<br>Email : '.$order->billing_email; } } 

Если бы я хорошо понял ваш вопрос, возможно, вы можете попробовать это. Но вы должны убедиться, что $post ссылается на заказ.

 $p = $post->ID; $args = array( 'p' => $p, 'post_type' => 'shop_order', 'post_status' => 'publish', 'meta_key' => '_customer_user', 'posts_per_page' => '-1' ); $my_query = new WP_Query($args); if ( $my_query->have_posts() ) { $my_query->next_post(); $customer_order = $my_query->post; $order = new WC_Order(); $order->populate($customer_order); $orderdata = (array) $order; $fields = array_values($orderdata); //print_r($fields); echo 'Status: '.$fields[1]; echo '<br>Date : '.$fields[2]; echo '<br>Email : '.$fields[16]; } 

Вы можете прочитать документ функции WP_Query () здесь: http://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters