此问题与我的问题相似,但这没有解决问题的答案 Contact Form 7 in Wordpress - How can I hide incompleted fields in the e-mail?
我只想从没有给出值的电子邮件中删除这些行
答案 0 :(得分:0)
如果您使用的是单个表单或具有相似字段集的多个表单,则可以在联系表单设置中将Message body
留空,然后将此函数添加到functions.php
add_filter( 'wpcf7_mail_components', 'add_extra_details', 50, 2 );
function add_extra_details($mail_params, $form = null) {
$fields = $_POST;
$keys_to_include = array(
'your-name' => 'Name',
'your-email' => 'Email',
'your-subject' => 'Subject'
);
foreach ($fields as $k => $v) {
if (array_key_exists($k, $keys_to_include)) {
$mail_params['body'] .= '<br />'.$keys_to_include[$k].': '.$v;
}
}
return $mail_params;
}
只需根据您在表单中的字段映射$keys_to_include
,如果您只想对某些表单执行此操作,则可以将所有内容包装起来以首先检查表单ID(联系表单中有很多隐藏字段使用它们)