我已经设置了超过1000种产品的Woo-Commerce。使用Woocommerce rest api php库我试图获得所有产品。
但它给了我10个产品。如果我使用过滤器[limit],它会给我大约400种产品,不超过这个。
$res = $wc_api->get_products(array( 'filter[limit]' => 400 ) );
任何人都可以说我如何从woocommerce获得所有产品?
答案 0 :(得分:1)
对于最新版本的WC API,请使用
'filter[posts_per_page]'=>-1
如果它无效,请尝试使用posts_per_page替换限制,如下所示:
public class Test : JObject
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
var test = new Test();
test["new_pro"] = 123456;
test.Id = 1;
test.Name = "Dog";
var r = Newtonsoft.Json.JsonConvert.SerializeObject(test);
// Result = { "new_pro":123456}
}
}
根据您的服务器规格和产品总数,此类型的查询可能需要大量内存,因此如果您收到任何错误或查询尚未完成,请确保php.ini中的内存限制为足够高。
答案 1 :(得分:0)
这不是最新的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);
答案 2 :(得分:0)
http://localhost:8888/wp-json/wc/store/products
为列表产品尝试此端点。您还可以获得类别和价格。