You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce REST API订单端点过滤返回数据给商家?

解决WooCommerce REST API返回指定订单字段的方案

要让WooCommerce REST API的订单端点(包括列表和单个订单)仅返回你需要的字段,后端通过钩子截断数据是最稳妥的方式——前端过滤确实存在调试控制台泄露的风险,从API源头控制才是根本解决办法。

直接把下面的代码加到你的主题functions.php文件或者自定义插件里:

add_filter( 'woocommerce_rest_prepare_shop_order', 'filter_rest_order_response_fields', 10, 3 );
function filter_rest_order_response_fields( $response, $order, $request ) {
    // 提取需要的基础订单字段
    $filtered_data = array(
        'id'            => $response->data['id'],
        'order_date'    => $response->data['date_created'],
        'order_status'  => $response->data['status'],
        'line_items'    => array()
    );

    // 处理订单项,只保留需要的商品信息
    foreach ( $response->data['line_items'] as $item ) {
        $filtered_item = array(
            'product_name' => $item['name'],
            'quantity'     => $item['quantity'],
            'variation'    => array()
        );

        // 提取商品变体属性,过滤所有定价相关数据
        if ( ! empty( $item['meta_data'] ) ) {
            foreach ( $item['meta_data'] as $meta ) {
                if ( strpos( $meta['key'], '_price' ) === false && strpos( $meta['key'], 'total' ) === false ) {
                    $filtered_item['variation'][ $meta['key'] ] = $meta['value'];
                }
            }
        }

        // 移除空的变体字段,避免冗余数据
        if ( empty( $filtered_item['variation'] ) ) {
            unset( $filtered_item['variation'] );
        }

        $filtered_data['line_items'][] = $filtered_item;
    }

    // 替换原始响应数据,返回过滤后的内容
    $response->data = $filtered_data;
    return $response;
}

代码说明:

  • 用woocommerce_rest_prepare_shop_order钩子拦截API响应,这个钩子同时作用于订单列表和单个订单请求
  • 先构建基础字段数组,仅保留id(对应Order ID)、date_created(Order Date)、status(Order Status)
  • 遍历订单项line_items,只提取商品名称、订购数量,以及变体属性(直接过滤掉所有价格类元数据)
  • 最后替换原始响应数据,确保API返回的只有你指定的内容

验证方式:

调用API端点(比如/wp-json/wc/v3/orders或者/wp-json/wc/v3/orders/{id}),检查返回的JSON结构,确认只包含你需要的字段,没有定价、用户隐私等额外数据。

内容的提问来源于stack exchange,提问作者Saeed Ansari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:57:42