在自定义循环中获取产品对象

时间:2013-08-06 作者:topherg

我目前正在为正在使用WooCommerce 为客户提供店铺。我刚刚开始,目前正在处理产品类别页面。我在获取WooCommerce产品对象时遇到了一个障碍。

我已经用变量读过了global $product 应该返回WC\\U产品对象,但当我返回时the_post(); var_dump($product), NULL 已返回。

然后,我尝试通过以下操作创建产品对象the_post(); $product = new WC_Product(get_the_ID()), 但当我var_dump($product) 在这方面,它给了我关于该产品的一般信息(post_name, post_description, 等等),但如果我打电话get_post().

有人能告诉我我错过了什么吗?

2 个回复
最合适的回答,由SO网友:topherg 整理而成

抱歉,我几乎立刻找到了解决方案。考虑过删除这个问题,但如果其他人也有同样的问题,我会把它留在这里。

要获取具有所有必需属性的产品对象,需要调用get_product() 之后the_post(), 这将返回产品对象供您使用。

SO网友:Innate

您可以使用自定义查询来获取产品对象。下面是一个获取库存数量的片段。查看产品类别:http://docs.woothemes.com/wc-apidocs/class-WC_Product.html 对于产品对象可用的函数。

<?php $args = array(
            \'post_type\'         => \'product\',
            \'post_status\'       => \'publish\',
            \'posts_per_page\'    => -1,
            \'orderby\'           => \'title\',
            \'order\'             => \'ASC\',               
            \'tax_query\' => array(
                array(
                    \'taxonomy\'  => \'product_type\',
                    \'field\'     => \'slug\',
                    \'terms\'     => array(\'simple\'),
                    \'operator\'  => \'IN\'
                )
            )
        );

        $loop = new WP_Query( $args );
        $stock_count = array();
        while ( $loop->have_posts() ) : $loop->the_post();

                        global $product;
                        $stock_count[] = $product->get_stock_quantity();

        endwhile; 


        // count the array values and output them
        echo "<h2>Stock Count: ".array_sum($stock_count)."</h2>";
        ?>

结束

相关推荐

Display All Non-Used Plugins

我的公司目前拥有大约20个多站点,并且每天都在增长。我们正在尝试通过插件并制定标准。IE,表单使用插件X。然而,我们还没有找到一种单一的方法来检查和系统地显示哪些插件甚至没有被使用。是否有一个功能可以向我们显示已使用或未使用的插件?我试着寻找我能想到的一切,但我一生都找不到答案。