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

如何将WooCommerce已完成订单的数量同步至Gravity Form?

将WooCommerce订单数量同步到关联的Gravity Form字段

需求与现有问题

我需要把WooCommerce订单的实际数量,同步到对应产品关联的Gravity Form字段中。当前使用的插件包括:

  • WooCommerce
  • Gravity Forms
  • Gravity Forms Product Add-ons

虽然Gravity Forms Product Add-ons支持将WooCommerce数量字段与GF字段关联,但存在局限:只有用户点击「加入购物车」时才会同步数量,若用户在购物车页面修改数量,GF中的对应字段不会自动更新。

解决方案代码

以下是修正后的函数,可在订单完成后将最终的商品数量同步到指定的GF隐藏数字字段中(字段标识格式为表单ID.字段ID,例如3.45):

add_action('woocommerce_checkout_order_processed', 'update_gform_entry_with_quantity', 10, 2);

function update_gform_entry_with_quantity($order_id, $posted_data) {
    // 获取订单对象
    $order = wc_get_order($order_id);

    if (!$order) {
        return;
    }

    // 遍历订单内的所有商品
    foreach ($order->get_items() as $item_id => $item) {
        // 从订单元数据中提取关联的GF条目ID
        $entry_id = $item->get_meta('_gravity_forms_history__entry_id', true);

        if ($entry_id) {
            // 获取该商品的最终订单数量
            $quantity = $item->get_quantity();

            // 获取对应的GF条目对象
            $entry = GFAPI::get_entry($entry_id);

            if (!is_wp_error($entry)) {
                // 替换为你的GF字段标识(表单ID.字段ID)
                $entry['3.45'] = $quantity;
                // 更新GF条目
                GFAPI::update_entry($entry);
            }
        }
    }
}

使用说明

  1. 替换代码中的'3.45'为你实际需要更新的GF字段标识,格式必须是「表单ID.字段ID」
  2. 确保你的WordPress环境中Gravity Forms API可用(需激活Gravity Forms插件)
  3. 该函数在woocommerce_checkout_order_processed钩子触发,会获取订单最终的商品数量,同步到对应的GF条目,解决购物车修改数量后不同步的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:58:07