woocommerce:如何从Woocommerce REST API中排除某些具有特定标签ID的产品

时间:2019-11-11 21:02:16

标签: javascript php wordpress woocommerce

我正在使用WooCommerce API开发移动应用程序,我需要从/products端点中排除某些具有特定标签ID的产品。

文档上没有关于如何执行此操作的选项!只需提及通过其ID(而非标签)排除产品。

1 个答案:

答案 0 :(得分:1)

您可以使用woocommerce_rest_product_object_query钩子创建自定义过滤器。

例如,参数为tag_exclude的过滤器:

http://wp.test/wp-json/wc/v3/products?tag_exclude=21,24

function filter_woocommerce_rest_tag_exclude( $args, $request ) { 
    $params = $request->get_query_params();
    if(isset($params['tag_exclude'])){
      $args['tax_query'] = array(
          array(
              'taxonomy' => 'product_tag',
              'terms' => explode(',', $params['tag_exclude']) ,
              'field' => 'term_id',
              'operator' => 'NOT IN',
          ),
      );
    } 
    return $args; 
}; 
add_filter( "woocommerce_rest_product_object_query", 'filter_woocommerce_rest_tag_exclude', 10, 2 );