我几乎整天都在寻找答案,但没有任何帮助..
我使用Contact Form 7制作了一个大表格,但表格的某些部分会隐藏,具体取决于您的选择。例如,如果您选择“2人”,则会显示两个部分。
但是,如果我填写一个人的字段(因此其他字段为空并隐藏),则字段将显示在电子邮件中。我只想查看电子邮件中填写的字段。
如果我有点不清楚,我很抱歉。可以请一些帮助。
答案 0 :(得分:3)
解决!
我自己找到了一个解决方案,已经在联系表7中。电子邮件中的字段不在同一行,所以当我检查"从输出中删除带有空白邮件标签的行时# 34;什么都没发生。我已将它全部放在同一条线上,现在它可以正常工作。
答案 1 :(得分:0)
尝试将此添加到functions.php文件中:
add_filter( 'wpcf7_mail_components', 'remove_blank_lines' );
function remove_blank_lines( $mail ) {
if ( is_array( $mail ) && ! empty( $mail['body'] ) )
$mail['body'] = preg_replace( '|\n\s*\n|', "\n\n", $mail['body'] );
return $mail;
}
我在此处找到了这个代码段:https://wordpress.org/support/topic/plugin-contact-form-7-how-to-do-away-with-blank-lines-in-email-for-unfilled-form-items/
根据您设置电子邮件的方式,这可能不起作用,因为这样只会删除空行。如果这对您有用,请告诉我,如果没有,请提供您电子邮件正文中的代码,发送的示例电子邮件也不错。
答案 2 :(得分:0)
实际上,您需要使用
实现自己的自定义电子邮件正文组件 add_filter('wpcf7_mail_components','my_custom_mail', 10,2);
function my_custom_mail($mail_component, $contact_form){
$mail_component['subject']; //email subject
$mail_component['sender']; //sender field (from)
$mail_component['body']; //email body
$mail_component['recipient']; //email recipient (to)
$mail_component['additional_headers']; //email headers, cc:, bcc:, reply-to:
$mail_component['attachments']; //file attachments if any
$key_values = array();
$tags = $contact_form->scan_form_tags(); //get your form tags
foreach($tags as $tag){
$field_name = $tag['name'];
if(isset($_POST[$field_name]) && !empty($_POST[$field_name])){
//get all the submitted fields form your form
$key_values[$field_name] = $_POST[$field_name];
}
}
//you have all the submitted field-name => value pairs in the array $key_values
//you can now reset you email body
$body = "Dear ".$key_values['your-name'].',';
...
$mail_component['body'] = $body;
return $mail_component;
}