我目前正在为正在使用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()
.
有人能告诉我我错过了什么吗?
最合适的回答,由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>";
?>