Как получить информацию о заказе продукции Woocommerce

Я пытаюсь получить все заказы woocommerce и найти информацию о продуктах в каждом заказе. Я видел много примеров здесь и в других местах в Интернете, и все они, похоже, говорят, что делают то же самое, но не работают. Я на Wordpress 4.1.1 и Woocommerce 2.3.3 вот мой код:

$filters = array(
    'post_status' => 'any',
    'post_type' => 'shop_order',
    'posts_per_page' => 200,
    'paged' => 1,
    'orderby' =>'modified',
    'order' => 'ASC'
);

$loop = new WP_Query( $filters );

while ( $loop->have_posts() ) {
    $loop->the_post();
    $order = new WC_Order($loop->post->ID);

    foreach ($order->get_items() as $key => $lineItem) {
        print_r($lineItem);
    }
}

Проблема заключается в том, что I print_r($lineItem) существует только три свойства, из которых только два из них когда-либо заселены. Типичный print_r($lineItem) выглядит следующим образом:

Array ( 
    [name] => Fouta Towel – Pearl Grey & White Stripe 
    [type] => line_item 
    [item_meta] => 
)

Как получить оставшуюся информацию об этом элементе заказа, например идентификатор продукта, будь то один /переменный продукт и т. д.

7 голосов | спросил geoffs3310 4 MaramWed, 04 Mar 2015 01:14:52 +03002015-03-04T01:14:52+03:0001 2015, 01:14:52

1 ответ


6

Попробовали свой код, и он отлично работает и на самом деле он также выдает детали каждого продукта в заказах. Код, который я пробовал

$filters = array(
    'post_status' => 'any',
    'post_type' => 'shop_order',
    'posts_per_page' => 200,
    'paged' => 1,
    'orderby' => 'modified',
    'order' => 'ASC'
);

$loop = new WP_Query($filters);

while ($loop->have_posts()) {
    $loop->the_post();
    $order = new WC_Order($loop->post->ID);

    foreach ($order->get_items() as $key => $lineItem) {

        //uncomment the following to see the full data
        //        echo '<pre>';
        //        print_r($lineItem);
        //        echo '</pre>';
        echo '<br>' . 'Product Name : ' . $lineItem['name'] . '<br>';
        echo 'Product ID : ' . $lineItem['product_id'] . '<br>';
        if ($lineItem['variation_id']) {
            echo 'Product Type : Variable Product' . '<br>';
        } else {
            echo 'Product Type : Simple Product' . '<br>';
        }
    }
}

И результат я получил от того же самого.

введите описание изображения здесь>> </p>

<p> Попробуйте это и дайте мне знать, как это работает для вас. </p></body></html>

ответил WisdmLabs 26 J0000006Europe/Moscow 2015, 07:53:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132