我正在使用WooCommerce API开发移动应用程序,我需要从/products
端点中排除某些具有特定标签ID的产品。
文档上没有关于如何执行此操作的选项!只需提及通过其ID(而非标签)排除产品。
答案 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 );