wordpress - Woocommerce REST API 排除订单端点中的特定产品订单
问题描述
我想在订单端点 /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);
如果有人可以帮助我,我将不胜感激。
解决方案
最后,我得到了解决方案。
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);
推荐阅读
- python - Python Reddit 提交文本切片
- c++ - OpenGL - 通过鼠标区域选择对象
- android - Android - 如何在按下主页按钮时暂停音乐
- python-3.x - 如何从python中的路径列表中删除路径
- reactjs - 调用 useState 是否会重新渲染组件?
- bash - 如果文件在 linux 中具有 .iso 扩展名,我该如何编写编写脚本的脚本?
- unit-testing - 为单个文件运行 TensorFlow 单元测试,但不输出任何内容
- java - Spring中的错误页面
- javascript - 如何在 Taglist 环境中创建变量 Shiny
- java - Firebase / GeoQuery - 最大半径 IF 语句