在Woocommerce中,我尝试使用wc_get_products()
来获取所有产品,如下所示:
$args = array( 'status' => 'publish' );
$products = wc_get_products( $args );
return $products;
但是它返回一个空字符串。
如何使用wc_get_products()
获得所有产品?我在做什么错了?
答案 0 :(得分:0)
您的代码有效,它将为您提供10个最后创建的WC_Product
对象的数组。因此,当您返回此WC_Product对象数组时,由于它不是字符串,因此不会给出任何结果。
如果您想获得所有产品,则需要添加值为{strong> 'limit'
的-1
参数,例如:
// An array of all published WC_Product Objects
$products = wc_get_products( array( 'status' => 'publish', 'limit' => -1 ) );
// Displaying the number of products in this array
echo '<p>Number of products: ' . sizeof( $products ) . '</p>';
// Loop through products and display some data using WC_Product methods
foreach ( $products as $product ){
echo '<p>';
echo 'Type: ' . $product->get_type() . '<br>'; // Product type
echo 'ID: ' . $product->get_id() . '<br>'; // Product ID
echo 'Title: ' . $product->get_title() . '<br>'; // Product title
echo 'Price: ' . $product->get_price(); // Product price
echo '</p>';
}
示例-以下代码将以逗号分隔的字符串形式输出所有产品ID的套件:
echo '<p>Products IDs list: ' . implode( ', ', wc_get_products( array( 'status' => 'publish', 'limit' => -1, 'return' => 'ids' ) ) ) . '</p>';
经过测试可以正常工作。
答案 1 :(得分:0)
我的问题是
wc_get_products($args);
未初始化。您需要先检查该情况。 可能是您的add_action挂钩的优先级不合适。 确保woocommerce首先初始化,然后再调用该函数。