如何在 Woocommerce REST API 中按元过滤产品?
How can I filter products by meta in Woocommerce REST API?
我想在 woocommerce rest api 中通过 meta_data 过滤产品。我试过了,但没有用:
$data = array(
'numberposts' => -1,
'post_type' => 'product',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'package_type',
'value' => $filters['ad_type'],
'compare' => '='
),
array(
'key' => 'package_location',
'value' => $filters['ad_location'],
'compare' => '='
),
array(
'key' => 'package_price_range',
'value' => $filters['ad_price_range'],
'compare' => '='
)
)
);
$_results = $this->woocommerce->get('products', $data);
$data 过滤器似乎没有生效,它会返回所有没有过滤器的产品。所以问题是,我如何在 api 请求中使用元过滤器?
我找到了解决办法。
Extend/override woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-products-controller.php 控制器,
输入以下内容:
if ( ! empty( $request['custom_filter'] && ! empty( $request['meta_key'] ) ) ) {
$args['meta_query'] = $this->add_meta_query( $args, array(
'key' => $request['meta_key'],
'value' => $request['meta_value'],
'compare' => '=',
) );
}
和 tada.wav 您可以按 meta_query!
进行过滤
我想在 woocommerce rest api 中通过 meta_data 过滤产品。我试过了,但没有用:
$data = array(
'numberposts' => -1,
'post_type' => 'product',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'package_type',
'value' => $filters['ad_type'],
'compare' => '='
),
array(
'key' => 'package_location',
'value' => $filters['ad_location'],
'compare' => '='
),
array(
'key' => 'package_price_range',
'value' => $filters['ad_price_range'],
'compare' => '='
)
)
);
$_results = $this->woocommerce->get('products', $data);
$data 过滤器似乎没有生效,它会返回所有没有过滤器的产品。所以问题是,我如何在 api 请求中使用元过滤器?
我找到了解决办法。 Extend/override woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-products-controller.php 控制器,
输入以下内容:
if ( ! empty( $request['custom_filter'] && ! empty( $request['meta_key'] ) ) ) {
$args['meta_query'] = $this->add_meta_query( $args, array(
'key' => $request['meta_key'],
'value' => $request['meta_value'],
'compare' => '=',
) );
}
和 tada.wav 您可以按 meta_query!
进行过滤