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

如何在WooCommerce订单中存储Google Adwords gclid参数?

如何将Google AdWords GCLID参数存储到WooCommerce订单中

步骤1:捕获GCLID并保存到用户会话

当用户通过带gclid参数的链接访问网站时,先将参数存入WordPress会话,确保下单时能获取到该值:

add_action('template_redirect', 'store_gclid_in_session');
function store_gclid_in_session() {
    if (isset($_GET['gclid']) && !empty($_GET['gclid'])) {
        session_start();
        $_SESSION['gclid'] = sanitize_text_field($_GET['gclid']);
    }
}

步骤2:将GCLID写入WooCommerce订单

用户点击下单按钮完成结算时,从会话中取出gclid,并保存为订单的自定义元数据:

add_action('woocommerce_checkout_create_order', 'save_gclid_to_order', 10, 2);
function save_gclid_to_order($order, $data) {
    if (isset($_SESSION['gclid']) && !empty($_SESSION['gclid'])) {
        $order->update_meta_data('_gclid', $_SESSION['gclid']);
        // 可选:下单后清空会话中的GCLID,避免后续订单重复使用
        unset($_SESSION['gclid']);
    }
}

步骤3:在后台订单页面显示GCLID

让管理员在WooCommerce后台订单详情页能看到该字段,添加以下代码:

add_action('woocommerce_admin_order_data_after_billing_address', 'display_gclid_in_admin_order', 10, 1);
function display_gclid_in_admin_order($order) {
    $gclid = $order->get_meta('_gclid');
    if (!empty($gclid)) {
        echo '<div class="address"><p><strong>' . __('GCLID:', 'woocommerce') . '</strong> ' . esc_html($gclid) . '</p></div>';
    }
}

数据库存储说明

WooCommerce会自动将_gclid元数据存储到wp_postmeta表中:

  • post_id对应WooCommerce订单的ID
  • meta_key为_gclid
  • meta_value为捕获到的GCLID参数值

注意事项

  • 代码可添加到当前主题的functions.php文件,或封装为自定义插件(推荐后者,避免主题更新丢失代码)
  • 确保主机支持WordPress会话功能,若会话异常可检查wp-config.php中的会话配置
  • 测试时需通过带gclid参数的URL进入网站,完成下单后验证后台订单及数据库记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:24:28