WooCommerce 多域名外链商品的动态联盟参数注入教程
本文详解如何在 woocommerce 外部产品(external product)中,根据目标跳转域名自动追加对应联盟 id 参数,实现多 affiliate 站点(如 sitea.com、siteb.com)的精准链接路由与参数绑定。 本文详解如何在 woocommerce 外部产品(external product)中,根据目标跳转域名自动追加对应联盟 id 参数,实现多 affiliate 站点(如 sitea.com、siteb.com)的精准链接路由与参数绑定。在 WooCommerce 运营联盟营销站点时,常需为不同合作平台(如 Amazon、Facebook、Microsoft 等)配置专属外部商品,并为其跳转链接动态注入各自的联盟标识(如 ?ref=abc123 或 ?affiliateID-2)。原生 WooCommerce 仅支持单个固定外链,而通过钩子 woocommerce_product_add_to_cart_url 可灵活重写「加入购物车」按钮的实际跳转地址——关键在于精准识别目标域名并匹配对应参数规则。以下为推荐的增强型实现方案,已兼容 HTTPS、子路径及大小写鲁棒性处理:add_filter( 'woocommerce_product_add_to_cart_url', 'custom_affiliate_url_router', 20, 2 );function custom_affiliate_url_router( $add_to_cart_url, $product ) { // 仅对外部产品生效,其他类型(如虚拟/实物)保持原链接 if ( ! $product->is_type( 'external' ) ) { return $add_to_cart_url; } // 标准化 URL:移除协议头,统一小写便于匹配(支持 http://、https://、//) $host = wp_parse_url( $add_to_cart_url, PHP_URL_HOST ); if ( ! $host ) { return $add_to_cart_url; } $host = strtolower( $host ); // 定义多 affiliate 映射规则:域名 → 查询参数 $affiliate_rules = [ 'facebook.com' => 'ref=your_fb_id', 'microsoft.com' => 'utm_medium=affiliate&utm_source=ms_partner', 'amazon.com' => 'tag=your-amazon-tag-20', 'sitea.com' => 'affiliateID-1', 'siteb.net' => 'affiliateID-2', ]; // 匹配并拼接参数(使用 '?' 或 '&' 自动适配已有查询参数) if ( isset( $affiliate_rules[ $host ] ) ) { $param = $affiliate_rules[ $host ]; $separator = ( false !== strpos( $add_to_cart_url, '?' ) ) ? '&' : '?'; $add_to_cart_url = trailingslashit( $add_to_cart_url ) . $separator . $param; } return $add_to_cart_url;}? 核心优势说明: Mokker AI AI产品图添加背景
