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>

そして、これは私の電子メールがどのように設定されているかのセクションです(注文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

メールから 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 に答える