为通过电子邮件从联系人表单7发送的复选框选项添加换行符/删除逗号

时间:2021-10-06 作者:Jade

目前,当有人提交包含多个复选框选项的联系人表单时,当通过电子邮件发送时,所有内容都在同一行,并用逗号分隔。

是否可以更改联系人表单7的电子邮件格式,使其改为添加换行符并删除复选框选项的逗号?我们确实希望它保持在实际联系人表单上的状态(选项都在一行/一段中,而不是按换行符分隔)-只希望更改电子邮件结果。

So for example we would like to checkbox results sent via email to showing:鸡蛋、面包、牛奶、水、桔子

To this (without the bulletpoint):

<鸡蛋、面包、牛奶、水、橙子这可能吗?如果是这样的话,我们将如何配置它来工作?

1 个回复
最合适的回答,由SO网友:Aurovrata 整理而成

是的,这可以使用CF7\'wpcf7_mail_tag_replaced\' 滤器

add_filter(\'wpcf7_mail_tag_replaced\', \'format_chackbox\',10,4);
function format_chackbox($replaced, $submitted, $is_html, $mail_tag){
  //you can check if this is the right field if need be.
  if(\'my-checkbox-field\' != $mail_tag->field_name()) return $replaced;
  //$submitted contains the raw submitted data.
  //$replaced is the formatted data, you can use either.
  $a = explode(\',\', $replaced);
  //check if you have multiple values and the email accepts html (set with the use html checkbox in the mail notification settings).
  if(is_array($a) && $is_html){
    $replaced = \'<ul>\'.PHP_EOL;
    foreach($a as $v) $replaced .= \'<li>\'.trim($v).\'</li>\'.PHP_EOL;
    $replaced .= \'</ul>\'.PHP_EOL;
  }
  return $replaced;
}
将此放置在functions.php 文件

相关推荐