ひよこwebプログラマーの覚え書き

エクセルとwebで効率化しますさせます

*

Contact Form 7で複数の項目をPHPで処理する

   

Pocket

Contact Form 7、お問い合わせフォームの定番プラグインです。
デフォルトでも簡単に色々な事が出来るのですが、複数の項目を処理する場合に格段に難易度が上がります。
今回は複数の項目を処理するやり方のご紹介です。

フォームはこんな感じです。数値を2つ送信するだけのシンプルなものです。

メール1はこう。

totalはどこから来るの?と思うかもしれませんが、関数内でprice1とprice2を合計、それを出力します。

ちなみにメール2でも[total]とするとメール1と同じように合計を返すことが出来ます。

phpはこんな感じです。テーマ内のfunctions.phpに書きましょう。

以下、説明です。
まず処理をする関数を定義します。
function my_special_mail_tags(…){…}
フィルターにフックします。
add_filter(‘wpcf7_special_mail_tags’, ‘my_special_mail_tags’, 10 ,3);

フィルターとは、フックとは?
関数の配列と思っていれば概ね間違いないです。

今回はwpcf7_special_mail_tagsという関数の配列があり、
そこにmy_special_mail_tagsを割り込ませます。優先順位は第三引数の「10」になります(小さい数値ほど優先順位が高く、同じなら先に追加されたほうが優先される)。
ちなみに他には「wpcf7_special_mail_tag」という関数もフックされています。

includes\mail.phpの289行目、
add_filter( ‘wpcf7_special_mail_tags’, ‘wpcf7_special_mail_tag’, 10, 3 );
です。

そして追加された関数の配列は264行目の
$special = apply_filters( ‘wpcf7_special_mail_tags’, ”, $tagname, $html );
で順次処理されるわけです。

私の頭のなかではこんな感じです。

余計わかりにくいですね!すいません。

興味のある方は
print_r($submission->get_posted_data());
を試して下さい。

以上です。

 - wordpress, プログラム

Message

メールアドレスが公開されることはありません。

  関連記事

wordpress-logo-notext-rgb
wordpressで閲覧者の情報を取得

get_currentuserinfo(); を使います。 get_curren …

no image
google拡張機能を開発する その5 本編 manifest.json以外について

manifest.jsonさえ乗り越えれば後は簡単です。ざっと見て行きましょう。 …

no image
google拡張機能を開発する その1 導入編

公開して広告収入を稼ぐも良し、自分の作業を楽にする、サイトを自分好みに変える、な …

no image
PHPのデバッグについて。ディレクトリ編

思わぬところでハマりました。phpでfopenやtouchする場合のディレクトリ …

no image
wordpressプラグインあれこれ

Custom Post Type UI カスタム投稿とカスタムタクソノミー使うな …

Adobe_Illustrator_Icon_CS6-150x150
after擬似要素が分裂する場合の対処方法

after擬似要素の付いている要素にappendすると、afterが分裂します。 …

wordpress-logo-notext-rgb
wordpressのマルチサイトにアクセス出来ない時

「サイトネットワーク管理」からサイトのドメイン設定 ドメインは取得したドメイン「 …

no image
wordpressを後悔せずに始めるために

-1.とりあえず始める。 無料です。とりあえず始めましょう! タイトルは「テスト …

wordpress-logo-notext-rgb
wordpressとsakuraサーバーでcronを使う

2015/6/30追記あり cronとは指定した時間に自動処理を行うサーバーの機 …

no image
html・cssの表示の崩れる原因

・ローカルにキャッシュが残っている。 ・サーバーにキャッシュが残っている。 ・拡 …