我想在订单端点中排除特定的产品订单 / wp-json / wc / v3 / orders
我尝试了订单准备查询挂钩,但无法正常工作。
add_filter('woocommerce_rest_orders_prepare_object_query', function (array $args, \WP_REST_Request $request) {
$args['product_id'] != 21380;
return $args;
}, 10, 2);
如果有人可以帮助我,我会很感激。
答案 0 :(得分:0)
最后,我找到了解决方案。
add_filter('woocommerce_rest_orders_prepare_object_query', function (array $args, \WP_REST_Request $request) {
global $wpdb;
// Search by product.
if ( ! empty( $request['product'] ) ) {
$order_ids = $wpdb->get_col(
$wpdb->prepare(
"SELECT order_id
FROM {$wpdb->prefix}woocommerce_order_items
WHERE order_item_id IN ( SELECT order_item_id FROM {$wpdb->prefix}woocommerce_order_itemmeta WHERE meta_key = '_product_id' AND meta_value = %d )
AND order_item_type = 'line_item'",
$request['product']
)
);
$order_ids = !empty($order_ids) ? $order_ids : array(0);
$args['post__in'] = $order_ids;
return $args;
}, 10, 2);