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

如何过滤WooCommerce REST API返回订单中的指定meta_data字段?

解决WooCommerce REST API返回数据过大导致Zapier无法接收的问题

针对你遇到的Fancy Product Designer插件在订单line_items的meta_data中携带base64格式PNG图片(key为_fpd_product_thumbnail),导致API返回数据超7MB被Zapier拒收的问题,可以通过WooCommerce的REST API钩子过滤响应数据,在不影响内部使用的前提下移除该字段的传输。

直接在主题的functions.php文件或自定义插件中添加以下代码:

add_filter('woocommerce_rest_prepare_shop_order_object', 'filter_fpd_thumbnail_from_api_response', 10, 3);

function filter_fpd_thumbnail_from_api_response($response, $order, $request) {
    // 获取订单的line items数据
    $line_items = $response->get_data()['line_items'];
    
    // 遍历每个商品项,过滤指定meta字段
    foreach ($line_items as &$item) {
        $item['meta_data'] = array_filter($item['meta_data'], function($meta) {
            return $meta['key'] !== '_fpd_product_thumbnail';
        });
    }
    
    // 更新响应数据
    $response->set_data(array_merge($response->get_data(), ['line_items' => $line_items]));
    
    return $response;
}

代码说明

  • 钩子woocommerce_rest_prepare_shop_order_object会在WooCommerce准备订单API响应时触发,专门用于修改返回的响应内容
  • 仅过滤API返回的meta_data字段,不会删除数据库中存储的_fpd_product_thumbnail数据,完全不影响内部业务使用
  • 通过array_filter精准移除目标字段,其余订单数据保持原样输出

添加代码后,再通过Zapier拉取订单时,响应数据将不再包含这个大体积的base64图片字段,数据量会大幅降低,即可正常被Zapier接收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:31:03