在Woocommerce中,我试图使用wc_get_products()获取所有产品,如下所示:
$args = array( 'status' => 'publish' );
$products = wc_get_products( $args );
return $products;但它返回一个空字符串。
如何使用wc_get_products()获得所有产品?我做错什么了?
发布于 2018-10-08 21:03:01
您的代码可以工作,并将为您提供最后创建的10个WC_Product对象的数组。因此,当您返回这个WC_Product对象数组时,它不会给出任何信息,因为它不是一个字符串。
如果希望-1获取所有产品,则需要添加值为的'limit'参数,如:
// 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>';测试和工作。
发布于 2018-12-28 18:48:23
我的问题是
wc_get_products($args);没有初始化。你得先检查一下那个案子。可能是您的add_action钩子有一个不适当的优先级。在调用该函数之前,请确保woocommerce首先初始化。
https://stackoverflow.com/questions/52706561
复制相似问题