如何获取WooCommerce订单产品信息

时间:2015-03-03 作者:geoffs3310

我正在尝试获取所有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);
    }
}
问题是当我print_r($lineItem) 只有三个属性,其中只有两个曾经填充过。典型的print_r($lineItem) 如下所示:

Array ( 
    [name] => Fouta Towel – Pearl Grey & White Stripe 
    [type] => line_item 
    [item_meta] => 
)
如何获取有关此订单项目的其余信息,例如产品id、是否为单一/可变产品等

1 个回复
SO网友:Domain

我已经试用了你的代码,它工作得很好,事实上,它还提供了订单中每个产品的详细信息。我试过的代码

$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>\';
        }
    }
}
我从中得到的结果也是一样的。

enter image description here

试试这个,让我知道它对你的作用

结束

相关推荐

在Auth.php中显示自定义帖子类型

我正在试图修改我的作者。php页面,以便它包含作者添加的自定义帖子类型。下面是我拥有的内容,它首先显示普通帖子,然后显示自定义帖子类型(my\\u custom\\u post\\u type)。第一部分似乎工作正常,显示正确。然而,第二部分似乎显示了所有自定义的帖子类型,而不仅仅是那些与作者的作者相关的帖子类型。php页面。任何帮助都将不胜感激。非常感谢。<!-- Show normal posts from the author --> <?php if ( have_pos