我在Woocommerce中通过对象功能检索产品信息时遇到问题。
我就是这样做的:
public function table_data()
{
$args = array( 'post_type' => 'product', 'posts_per_page' => -1 );
$products = get_posts( $args );
$pfactory = new WC_Product_Factory();
foreach($products as $product)
{
$_product = $pfactory->get_product($product);
}
}
这只返回来自wp_posts的产品信息,它不会向我提供存储在wp_postmeta中的信息。
我需要一个数组中所有产品(例如价格,sku,股票等)的完整信息,但我似乎遗漏了一些东西,我不确定它是否与我的代码中的函数层次结构有关。但是我认为没有SQL查询就可以做到这一点。
基本上,我想要做的是在管理员中完整复制产品列表,以便在面板中列出包含信息的产品。
感谢我能得到的所有帮助。
答案 0 :(得分:7)
使用WP_Query,这将使您可以从循环内访问全局WooCommerce $ product变量。从那里,您可以获取价格,sku,股票和所有其他类型的数据。 http://docs.woothemes.com/wc-apidocs/class-WC_Product.html
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => -1
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ): while ( $loop->have_posts() ): $loop->the_post();
global $product;
$price = $product->get_price_html();
$sku = $product->get_sku();
$stock = $product->get_stock_quantity();
endwhile; endif; wp_reset_postdata();
?>
答案 1 :(得分:1)
我想出的第一件事就是这个。
function products() {
return array_map('wc_get_product', get_posts(['post_type'=>'product','nopaging'=>true]));
}
如果有更好的方法,我很想从更有经验的WooCommerce中了解