查询所有没有API的产品,在Woocommerce中使用wc_get_products

Sal*_*rdi 2 php arrays wordpress product woocommerce

在 Woocommerce 我试图让所有产品使用wc_get_products()如下:

$args = array( 'status' => 'publish' );
$products = wc_get_products( $args );
return $products;
Run Code Online (Sandbox Code Playgroud)

但它返回一个空字符串。

我怎样才能得到所有使用的产品wc_get_products()?我做错了什么?

Loi*_*tec 7

您的代码有效,并将为您提供最后创建的 10 个WC_Product对象的数组。因此,当您返回这个 WC_Product 对象数组时,它不会给出任何内容,因为它不是字符串。

如果要获取所有产品,则需要添加'limit'值为-1like 的参数:

// 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>';
}
Run Code Online (Sandbox Code Playgroud)

示例 - 以下代码将以字符串形式输出所有产品 ID 的逗号分隔套件:

echo '<p>Products IDs list: ' . implode( ', ', wc_get_products( array( 'status' => 'publish', 'limit' => -1, 'return' => 'ids' ) ) ) . '</p>';
Run Code Online (Sandbox Code Playgroud)

测试和工作。