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

WordPress中如何在Contact Form 7传递自定义字段Job ID至邮件

解决Contact Form 7传递Toolset自定义Job ID的问题

我之前处理过类似的需求,给你两个亲测有效的解决方案,你可以根据自己的情况选择:

方案一:通过CF7短代码参数传递(无需额外代码)

你之前的第一种方法问题出在参数名的写法上,CF7短代码的参数不能有空格,而且需要在表单里对应读取这个参数。步骤如下:

  1. 在职位详情页的模板中,修改CF7的调用代码,把参数名改成无空格的格式(比如job_id):
<?php echo do_shortcode( '[contact-form-7 id="983" title="contact 1" job_id="'.get_field( 'job-id' ).'"]' ); ?>
  1. 在Contact Form 7的表单编辑界面,修改隐藏字段为:
[hidden job-id default:job_id]

这里的default:job_id表示读取短代码中传入的job_id参数值,作为隐藏字段的默认内容。
3. 最后在CF7的邮件模板里,用[job-id]就能显示这个Job ID了。

方案二:用过滤器动态填充隐藏字段(适合需要更灵活控制的场景)

如果你的职位文章是自定义文章类型,或者需要额外判断逻辑,可以用CF7的过滤器来动态获取Job ID:

  1. 打开你当前主题的functions.php文件,添加以下代码(注意替换隐藏字段名称和文章类型,如果是默认的post类型可以保留is_singular('post')):
add_filter( 'wpcf7_form_tag_data_filter', 'fill_job_id_hidden_field', 10, 2 );
function fill_job_id_hidden_field( $value, $tag ) {
    // 替换成你实际的隐藏字段名称
    if ( 'hidden-948' == $tag->name && is_singular('post') ) {
        // 获取Toolset自定义的Job ID,Toolset兼容get_field函数,也可以用types_render_field('job-id', array('raw' => true))
        $job_id = get_field( 'job-id' );
        return $job_id ? $job_id : '无职位ID';
    }
    return $value;
}
  1. 在CF7表单里保持隐藏字段的设置为:
[hidden hidden-948]
  1. 邮件模板里用[hidden-948]就能输出Job ID了。

为什么你之前的方法无效?

  • 第一种方法里你用了job ID="..."作为参数名,CF7无法识别带空格的参数,必须用下划线或连字符的格式;
  • 第二种方法里直接写"wpcf-job-id"是静态文本,CF7不会自动解析这个自定义字段的内容,必须通过动态参数或过滤器来获取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:19:06