首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CF7拆分/分离字段

CF7拆分/分离字段
EN

WordPress Development用户
提问于 2019-05-16 10:30:15
回答 1查看 311关注 0票数 1

我似乎找不到解决办法,无论是在这里还是谷歌。一个客户要求在他的CF7表单中有一个名字字段,但是一旦电子邮件被发送,它需要有两个字段。

示例:变成隐藏在表单中的某个地方。

这怎么可能?

<#>编辑

我已经用webhooks构建了一些东西,但是由于某种原因,它没有提交数据。

代码语言:javascript
复制
add_action( 'wpcf7_before_send_mail', 'wpcf7_strip_name', 10, 1 );
function wpcf7_strip_name($contact_form){

   $submission = WPCF7_Submission::get_instance();
   $posted_data = $submission->get_posted_data();
    if ($posted_data["your-name"]){
    $name = trim($posted_data["your-name"]);
    $last_name = (strpos($name, ' ') === false) ? '' : preg_replace('#.*\s([\w-]*)$#', '$1', $name);
    $first_name = trim( preg_replace('#'.$last_name.'#', '', $name ) );

  // Set default value for last name if none is provided   
      if ($last_name == NULL ){
      $last_name = "Not Provided";
      }
    }
}

在我的联系人表单中,我有以下隐藏字段

代码语言:javascript
复制
[hidden first_name]
[hidden last_name]

这两个字段也会在电子邮件中声明,但是名称剥离不会通过。

EN

回答 1

WordPress Development用户

发布于 2019-05-16 11:20:15

可能与jQuery有关。这个想法是添加一个隐藏字段并使用jquery为其设置值。

代码语言:javascript
复制
$("#name_field_id").focusout(function(){
     str = $(this).val();
     if(str){
      s = str.split(/(?<=^\S+)\s/); //split string in name field after first space found. 
      $("#hidden_field_id").val(s[1]); //s[1] value after the first space set to hidden field.
     }
  });

然后,您可以在电子邮件中使用隐藏字段。

票数 -1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/338026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档