WordPress/WooCommerce:基于当前产品的动态联系表单链接实现
解决方案:动态生成带产品名称的CF7联系链接
我来给你一套实用的实现方案,完美解决WooCommerce产品页动态填充Contact Form 7主题字段的需求,步骤清晰易操作:
1. 给主题添加自定义短代码
首先,我们通过自定义短代码来动态生成包含当前产品名称的链接。打开你的主题(推荐用子主题,避免主题更新丢失代码)的functions.php文件,添加以下代码:
function wc_product_contact_link_shortcode() { // 只在产品页生效,避免其他页面输出无效内容 if ( ! is_product() ) { return ''; } // 获取当前产品名称并编码,防止特殊字符导致URL乱码 $product_title = urlencode( get_the_title() ); // 替换成你实际的联系表单页面URL $contact_url = home_url( '/contact-form/' ); // 拼接带产品名的查询字符串 $full_url = $contact_url . '?subject=' . $product_title; // 返回带链接的文本块,你可以根据需求自定义文本内容 return '<p>有疑问?<a href="' . esc_url( $full_url ) . '">联系我们咨询「' . get_the_title() . '」</a></p>'; } add_shortcode( 'product_contact_link', 'wc_product_contact_link_shortcode' );
2. 配置Contact Form 7接收参数
打开你的Contact Form 7表单编辑器,找到「主题」对应的文本字段,把字段代码修改为:
[text subject default:get]
这里的default:get表示自动读取URL中同名的subject参数值,自动填充到这个字段里。如果你的字段名不是subject,记得同步修改查询字符串里的参数名和CF7字段名称。
3. 在产品页嵌入短代码
现在你可以在产品页的任意位置(比如产品描述、自定义模块、编辑器内容里)插入短代码:
[product_contact_link]
发布后访问产品页,就能看到动态生成的链接,点击后联系表单的「主题」字段会自动填充当前产品的名称。
额外优化:自定义文本内容
如果想在不同产品页使用不同的提示文本,可以给短代码加参数扩展功能:
修改短代码函数为:
function wc_product_contact_link_shortcode( $atts ) { if ( ! is_product() ) { return ''; } // 提取短代码参数,设置默认文本 $atts = shortcode_atts( array( 'text' => '有疑问?联系我们咨询该产品', ), $atts ); $product_title = urlencode( get_the_title() ); $contact_url = home_url( '/contact-form/' ); $full_url = $contact_url . '?subject=' . $product_title; return '<p><a href="' . esc_url( $full_url ) . '">' . esc_html( $atts['text'] ) . '</a></p>'; } add_shortcode( 'product_contact_link', 'wc_product_contact_link_shortcode' );
使用时就可以自定义文本:
[product_contact_link text="对这款产品感兴趣?点击咨询详情"]
内容的提问来源于stack exchange,提问作者ConM
相关产品推荐
相关产品推荐

