WooCommerce 多联盟站点动态追加 Affiliate ID 教程

张开发
2026/4/21 3:03:16 15 分钟阅读

分享文章

WooCommerce 多联盟站点动态追加 Affiliate ID 教程
本文详解如何在 woocommerce 外部产品链接中根据目标域名自动追加对应联盟 id如 sitea.com → ?affiliateid-1siteb.com → ?affiliateid-2通过 woocommerce_product_add_to_cart_url 钩子实现精准、可扩展的多联盟路由逻辑。 本文详解如何在 woocommerce 外部产品链接中根据目标域名自动追加对应联盟 id如 sitea.com → ?affiliateid-1siteb.com → ?affiliateid-2通过 woocommerce_product_add_to_cart_url 钩子实现精准、可扩展的多联盟路由逻辑。在 WooCommerce 中外部产品External/Affiliate Product的「加入购物车」按钮实际跳转至第三方联盟网站。为追踪推广效果需为不同合作平台动态拼接专属联盟参数如 ?affiliateID-1。原方案仅支持单一域名硬编码而真实业务常需对接多个联盟渠道例如 Facebook、Microsoft、Amazon 等此时需基于 URL 域名智能匹配并注入对应参数。核心思路是在 woocommerce_product_add_to_cart_url 过滤器中先判断产品类型是否为 external再使用字符串匹配推荐 parse_url() str_ends_with() 或 str_starts_with()精准识别目标域名避免误判子路径或协议差异。以下为生产就绪的优化代码add_filter( woocommerce_product_add_to_cart_url, custom_product_add_to_cart_url, 20, 2 );function custom_product_add_to_cart_url( $add_to_cart_url, $product ) { // 仅处理外部产品 if ( ! $product-is_type( external ) ) { return $add_to_cart_url; } // 解析 URL 主机名兼容 http/https/www/non-www $parsed parse_url( $add_to_cart_url ); if ( ! $parsed || ! isset( $parsed[host] ) ) { return $add_to_cart_url; } $host strtolower( $parsed[host] ); // 定义联盟规则域名 → 参数后缀 $affiliate_rules [ facebook.com ?affiliateID-1, microsoft.com ?affiliateID-2, amazon.com ?refyourstore-20, example-affiliate.net ?utm_sourcewcutm_mediumaffiliate, ]; // 匹配并追加参数支持精确主机名匹配 foreach ( $affiliate_rules as $domain $param ) { if ( $host $domain || $host www. . $domain ) { // 若原 URL 已含查询参数用 连接否则用 ? 开头 $separator ( false ! strpos( $add_to_cart_url, ? ) ) ? : ?; return $add_to_cart_url . $separator . ltrim( $param, ? ); } } // 未匹配时保持原始链接不添加任何参数 return $add_to_cart_url;}? 关键优势说明 VWO 一个A/B测试工具

更多文章