使用REST API从Woocommerce获取所有产品

问题描述 投票:0回答:4

我正在尝试使用rest api检索所有产品。我读过this的问题。我正在用邮递员打电话。这是我的查询

https://squatwolf.com/wp-json/wc/v2/products?filter[posts_per_page] =-1

查询仅显示10个结果。

php wordpress rest woocommerce-rest-api
4个回答
6
投票

这不是最新的API端点:

/wc-api/v3/products?filter[limit]=

您必须每页获取页面才能获得所有产品:

$page = 1;
$products = [];
$all_products = [];
do{
  try {
    $products = $wc->get('products',array('per_page' => 100, 'page' => $page));
  }catch(HttpClientException $e){
    die("Can't get products: $e");
  }
  $all_products = array_merge($all_products,$products);
  $page++;
} while (count($products) > 0);

4
投票

我能够使用以下解决方案找到数据,

https://squatwolf.com/wc-api/v3/products?filter[limit] =-1

1
投票

filter不再支持see the Docs参数。所以你真的需要循环页面。

以下是如何使用JavaScript获取所有产品(对于Gutenberg Block商店):

let allProducts = [],
    page = 1

while (page !== false) {
    const products = yield actions.receiveProducts(`/wc-pb/v3/products?per_page=100&page=${page}`)

    if (products.length) {
        allProducts = allProducts.concat(products)
        page++
    } else {
        page = false // last page
    }
}

return actions.setProducts(allProducts)

0
投票
/wp-json/wc/v2/products

/wc-api/v3/products

两者似乎都有效,但要获得我正在使用的一定数量的产品

/wc-api/v3/products?filter[limit]=

把产品的数量放在那里。 -1表示所有产品

© www.soinside.com 2019 - 2024. All rights reserved.