web-dev-qa-db-ja.com

Contact Form 7メール本文にカスタム変数を追加する

私は私のユーザーがどのソースから来たのかを知るために私のユーザーのためにクッキーを設定します。

新しいショートコードを作成してメールセクションに追加しましたが、その戻り値ではなく直接のショートコードをメールで送信します。

コード:

function my_shortcode( $atts ) {
   return isset($_COOKIE['my_source']) ? $_COOKIE['my_source'] : '' ;
}
add_shortcode( 'my-source', 'my_shortcode' );

連絡フォーム7のメッセージ本文:

Name : [your-name]
Email : [your-email]
Phone : [form-tel]
My Source : [my-source]

私が受け取ったEメール:

Name : Mohit Bumb
Email : [email protected]
Phone : 19191919191
My Source : [my-source]
1
Mohit Bumb

あなたはそうするべきです:

add_action( 'wpcf7_init', 'custom_add_form_tag_my_source' );

function custom_add_form_tag_my_source() {
  // "my-source" is the type of the form-tag
  wpcf7_add_form_tag( 'my-source', 'custom_my_source_form_tag_handler' );
}

function custom_my_source_form_tag_handler( $tag ) {
  return isset( $_COOKIE['my_source'] ) ? $_COOKIE['my_source'] : '';
}

詳しくは ドキュメント を見てください。

あるいは、これを試して、通常のショートコードを解析することもできます。

add_filter( 'wpcf7_mail_components', function( $components ){
  $components['body'] = do_shortcode( $components['body'] );
  return $components;
} );
1
Sally CJ

私は解答し、私の答えをここに投稿しました:

WordpressでContact Form 7にカスタムフォームタグを追加する

(それはまた電子メールで送られるように働く)

https://stackoverflow.com/questions/53754577/how-to-make-contact-form-7-custom-field/

コード

https://Gist.github.com/eduardoarandah/83cad9227bc0ab13bf845ab14f2c4dad

0
lalo

フィルタ "wpcf7_special_mail_tags"を使う

この例では、私のタグは "tournaments"です。

/**
 * A tag to be used in "Mail" section so the user receives the special tag
 * [tournaments]
 */
add_filter('wpcf7_special_mail_tags', 'wpcf7_tag_tournament', 10, 3);
function wpcf7_tag_tournament($output, $name, $html)
{
    $name = preg_replace('/^wpcf7\./', '_', $name); // for back-compat

    $submission = WPCF7_Submission::get_instance();

    if (! $submission) {
        return $output;
    }

    if ('tournaments' == $name) {
        return $submission->get_posted_data("tournaments");
    }

    return $output;
}
0
lalo