提交联系表单 7 时结转 ACF 字段

Carry over ACF field when Contact Form 7 is submitted

提问人:Dilion Smith 提问时间:11/8/2023 更新时间:11/8/2023 访问量:52

问:

只是一个简短的解释;目前,我有一个网站,员工可以在其中登录并能够提交表格以请求服务。每个员工都有一个唯一的 ID 字段,该字段是使用 ACF 字段创建的。我希望发生的事情是,当他们提交请求服务的表格时,这个唯一 ID 会作为隐藏字段传递,并显示在联系表格 7 的提交结果上。这将极大地帮助我们公司提高生产力并减少时间浪费。

目前,我已经尝试了几种不同的选择,但没有任何效果,很好奇是否有人处理过类似的问题。

谢谢 迪里昂·史密斯

php 高级自定义字段 contact-form-7 wordpress-shortcode

评论


答:

1赞 katsucurry 11/8/2023 #1

其他人可能会想出一个更优雅或更好的解决方案,但一种可能的方法是在 js 中将当前员工 ID 回显到页面上,然后用它替换 cf7 隐藏表单值。

假设你的隐藏字段是这样的。

[hidden employee_id default:"0"]

在函数 .php 文件中,您可以创建实际存储员工 ID 的变量并将其放在页面上。

function echo_cf7_employee_id() {
    $post = get_post();
    if (has_shortcode( $post->post_content, 'contact-form-7')) {
        echo '<script type="text/javascript">let cf7_employee_id = '.get_field('employee_id', 'user_'. get_current_user_id()).';</script>';
    }
}
add_action('wp_footer', 'echo_cf7_employee_id');

然后,在其中一个 js 文件中,您可以添加以下内容以检查当前页面上是否存在该字段,然后使用您的员工 ID 更新其值。

if($('input[name="employee_id"]').length) {
    $('input[name="employee_id"]').val(cf7_employee_id);
}