Я использую WooCommerce 2.0, и я хотел бы получить и отобразить имя заказанного продукта на странице myaccount.php вместе с номером заказа.
Так что если это отображение по умолчанию в myaccount.php:
ORDER DATE STATUS TOTAL ACTIONS LICENSING #521 August 19, 2014 Completed $99.99 for 1 item VIEW
Я хотел бы изменить его на:
ORDER DATE STATUS TOTAL ACTIONS LICENSING #521-ProductName August 19, 2014 Completed $99.99 for 1 item VIEW
Может ли кто-нибудь предложить какие-либо предложения о том, как получить имя продукта заказа? Я смущен тем, как это сделать.
Благодаря!
Вы можете сделать это после внесения некоторых изменений в свой my-orders.php
вам нужны мои-orders.php. Поместите копию в папку темы, чтобы обновить ее.
//Add the following code in the customer_order loop foreach($order->get_items() as $item) { $product_name = $item['name']; } <?php echo $product_name;?> //echo product name
$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; foreach ($customer_orders as $customer_order) { $order = new WC_Order(); $order->populate($customer_order); $orderdata = (array) $order; // $orderdata Array will have Information. for eg Shippin firstname, Lastname, Address ... and MUCH more.... Just enjoy! }
И чтобы получить более подробную информацию о заказе, вы можете использовать приведенный ниже код.
Предполагая, что $ post-> ID – это идентификатор продукта, который вы хотите отображать, содержит то, что вам нужно:
$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; } }