1

谁能帮我找到一种方法来隐藏发送的电子邮件中的字段?

基本上我有多行(如多个订单列表),如果用户只填写第一行,我不希望其他空行显示在电子邮件中。

这是表单的一段代码(但还有 8 行,即 10 个订单):

<tr class="stationary-order-input">
        <td>[text order-1-page-number]</td>
        <td>[text order-1-item-number]</td>
        <td>[text order-1-item-description]</td>
        <td>[text order-1-quantity]</td>
    </tr>
    <tr class="stationary-order-input">
        <td>[text order-2-page-number]</td>
        <td>[text order-2-item-number]</td>
        <td>[text order-2-item-description]</td>
        <td>[text order-2-quantity]</td>
    </tr>

这是我的电子邮件设置方式的一部分(最多 ORDER 10):

ORDER 1 - Details:

Page number: [page-number]
Item number: [item-number]
Item description: [item-description]
Quantity: [quantity]

ORDER 2 - Details:

Page number: [order-2-page-number]
Item number: [order-2-item-number]
Item description: [order-2-item-description]
Quantity: [order-2-quantity]

目前,所有 10 个订单都将显示在电子邮件中,即使用户尚未完成所有订单。那么如何在电子邮件中隐藏这些不完整的字段呢?

请帮忙!

4

4 回答 4

2

在联系表 7 的邮件 1 字段中,电子邮件字段底部有一个复选框。它声明从输出中排除带有空白邮件标签的行,并在其上打上复选标记。然后保存表格

现在,当客户填写表格并且不填写某些字段时,它不会显示在您的电子邮件中。

于 2014-11-02T22:21:30.430 回答
1

尝试以下过滤器,尚未在实时站点中测试,并且我的本地站点不发送电子邮件,所以我不确定。

由于 CF7 有一些内部值,我认为最好单独检查每个字段,例如your-address,your-phone等:

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;
}
于 2013-02-21T23:25:56.067 回答
0

只需选中消息正文字段下与文本“从输出中排除带有空白邮件标签的行”平行的复选框。

于 2015-04-16T13:25:35.220 回答
0

这是从邮件中删除 Contact Form 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 );
于 2015-02-06T14:33:29.407 回答