ひよこ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

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

  関連記事

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

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

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

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

jQueryでselect要素、option要素の中からテキスト・文字列で選択する方法

例としてこんなselect要素、option要素があるとします。そして青森を選択 …

wordpressで記事を自動削除

ページにアクセスした時、任意の条件で投稿を自動で削除します。 自動で定期的にアク …

no image
webプログラミング用のおすすめツール

フリー、有料、ともに星の数ほどあるツール。 人によって何がいいかはかなり差がある …

no image
wordpressでファイル作成のtouch()を使った場合

$file_name = ‘./data.txt’; t …

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

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

no image
9割役に立つというコードについて

・9割役に立つというコードは信用しないほうが良い 9割役に立つ、と言うのはとても …

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

本題です。manifest.json以外は次の項で説明します。 manifest …

no image
jquery、jquery-mobileの.liveが使えない

jquery1.7で廃止されていました。 検索すると $(ページID).live …