在插件中从REST API调用获取所有WooCommerce产品

时间:2020-02-17 作者:Michael C

我正在开发一个插件,扩展Woocommerce并充当自定义产品过滤器。我遇到的问题是,它没有绑定到一个特定的站点,必须从外部API调用获取产品,这限制了每页100个结果,我需要的产品不到1000个。我宁愿只通过一次调用来获取这些数据,而不需要一些复杂的循环来将各个页面调用的结果粘合在一起。似乎绕过此限制的唯一(推荐)方法是使用wc_get_products 方法,使用limit 设置为-1可退回所有产品。但如果没有一个明确的父站点,我看不到如何应用该方法,如果可以的话,如何将API调用函数转换为wc_get_products 可以读取,但最初不限于前100个产品结果。

1 个回复
SO网友:Michael C

在这里,我很接近答案,但由于不熟悉全球Wordpress的功能,以及如何使用它来扩展插件,我感到有些犹豫。我所需要做的就是将插件逻辑包装起来,检查Woocommerce是否存在:

if ( in_array( \'woocommerce/woocommerce.php\', apply_filters( \'active_plugins\', get_option( \'active_plugins\' ) ) ) ) {
  // Stuff goes here
}
。。。并设置搜索参数:

$args = array(
    \'limit\' => -1,
    \'category\' => array($category_slug),
    \'tag\' => array($tag_slug));
    $products = wc_get_products( $args );