联系Wordpress中的表格7-如何在电子邮件中隐藏未完成的字段?
有人能帮我找到一种方法来隐藏发送的电子邮件中的字段吗 基本上,我有多行(如多订单列表),如果用户只填写最上面的一行,我根本不希望其他空行显示在电子邮件中 以下是表单的代码部分(但还有8行,即10个订单): 目前,所有10个订单都将显示在电子邮件中,即使用户尚未完成所有订单。那么,如何在电子邮件中隐藏这些不完整的字段呢联系Wordpress中的表格7-如何在电子邮件中隐藏未完成的字段?,wordpress,email,field,contact-form,contact-form-7,Wordpress,Email,Field,Contact Form,Contact Form 7,有人能帮我找到一种方法来隐藏发送的电子邮件中的字段吗 基本上,我有多行(如多订单列表),如果用户只填写最上面的一行,我根本不希望其他空行显示在电子邮件中 以下是表单的代码部分(但还有8行,即10个订单): 目前,所有10个订单都将显示在电子邮件中,即使用户尚未完成所有订单。那么,如何在电子邮件中隐藏这些不完整的字段呢 请帮忙 试试下面的过滤器,它还没有在现场测试过,而且我的本地站点也不发送电子邮件,所以我不确定 由于CF7有一些内部值,我认为最好单独检查每个字段,例如,您的地址,您的手机,等等:
请帮忙 试试下面的过滤器,它还没有在现场测试过,而且我的本地站点也不发送电子邮件,所以我不确定 由于CF7有一些内部值,我认为最好单独检查每个字段,例如,
您的地址
,您的手机
,等等:
add_filter( 'wpcf7_posted_data', 'cf7_so_15007502' );
function cf7_so_15007502( $posted_data )
{
if( isset( $posted_data['your-address'] ) && '' == $posted_data['your-address'] )
unset( $posted_data['your-address'] );
if( isset( $posted_data['your-phone'] ) && '' == $posted_data['your-phone'] )
unset( $posted_data['your-phone'] );
return $posted_data;
}
在联系人表单7的邮件1字段中,电子邮件字段底部有一个复选框。它表示从输出中排除带有空白邮件标记的行并在其上打勾。然后保存表单
现在,当客户填写表单而不填写某些字段时,它将不会显示在您的电子邮件中 这里有一种更为动态的方法,可以从邮件中删除联系人表单7标签
function on_wpcf7_mail_components( $data, $form, $mail )
{
foreach ( (array) $form->form_scan_shortcode() as $shortcode )
{
if ( empty( $shortcode['name'] ) )
{
continue;
}
$tag = sprintf( '[%s]', $shortcode['name'] );
$data['body'] = str_replace( $tag , '', $data['body'] );
}
return $data;
}
add_filter( 'wpcf7_mail_components', 'on_wpcf7_mail_components', 10, 3 );
只需在邮件正文字段下选中与文本“从输出中排除带有空白邮件标记的行”平行的复选框。谢谢@brasofilo,我会试试这个。那么这是functions.php中的内容吗?特别是在哪里?@user1794295,两个选项,一个自定义插件或
functions.php
,请参阅并感谢,但我担心我所做的不太正确,因为我希望在电子邮件中隐藏不必要的文本(即与未填写的表单字段相关的部分)。我想我可能需要重新考虑一下电子邮件的格式。。。
add_filter( 'wpcf7_posted_data', 'cf7_so_15007502' );
function cf7_so_15007502( $posted_data )
{
if( isset( $posted_data['your-address'] ) && '' == $posted_data['your-address'] )
unset( $posted_data['your-address'] );
if( isset( $posted_data['your-phone'] ) && '' == $posted_data['your-phone'] )
unset( $posted_data['your-phone'] );
return $posted_data;
}
function on_wpcf7_mail_components( $data, $form, $mail )
{
foreach ( (array) $form->form_scan_shortcode() as $shortcode )
{
if ( empty( $shortcode['name'] ) )
{
continue;
}
$tag = sprintf( '[%s]', $shortcode['name'] );
$data['body'] = str_replace( $tag , '', $data['body'] );
}
return $data;
}
add_filter( 'wpcf7_mail_components', 'on_wpcf7_mail_components', 10, 3 );