よくあるワードプレスのメールフォームへの要望と解決策

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

ワードプレスのメールフォーム関連で寄せられる要望と解決策についてまとめていきます。WP MW Form は開発終了となっているため、メールフォーム・プラグインはContact Form 7 とします。
確認画面については Calculated Fields Form の場合も追記しています。

確認画面 Contact Form 7 の場合

Contact Form 7 Multi-Step Forms は確認ページと完了ページを作成するのでデザイン・表示は自由が効きますが、無料版は送信容量に制限があります。
Confirm Plus Contact Form 7 はページ遷移せず、表示はテーブルレイアウトのみ、確認画面での表示・非表示などはフォーム作成時のタグに決まりがあります。

プラグイン無しでjQuery で表示する場合は表示内容・HTMLに制限はありません。

cf7 確認画面の選択肢

確認画面 Calculated Fields Form の場合

計算機能付きのCalculated Fields Form はページ分割ができるので、jQuery を利用して2ページ目を確認ページにすることが可能です。
*自動返信・reCAPTCHA機能は有料版が必要。

Calculated Fields Form で確認画面付きメールフォーム

フォームのフィールドに値を入れる

Contact Form 7 – Dynamic Text Extension を利用します。
カスタムフィールド値の場合:”CF7_get_custom_field key=’カスタムフィールドのキー'”、キーは別途登録が必要
投稿タイトルの場合:”CF7_get_post_var key=’title'”
パラメータの場合:”CF7_GET key=’パラメータ名'”
ターム名:”CF7_get_taxonomy taxonomy=’タクソノミー名'”
自作ショートコード: “ショートコード名”、Contact Form 7 で使用するための関数はなしでも使える

編集不可にする場合は readonly を入れる。

*その他必要な項目を関数などでカスタムフィールドに保存する場合もあります。

Contact Form 7 – Dynamic Text Extension でカバーできない場合など、jQuery で値を入れることもあります。

日時・定員での締め切り

カスタムフィールドで締め切り日時・定員数を設定し、テーマ側で条件分岐をつけます。
定員で締め切る場合は、送信時にカスタムフィールド値を更新する関数を作成します。

期日や定員でメールフォーム・申込みを締め切る

ワードプレスのメールフォームでの予約受付の作り方

予約フォームの機能

イベントの予約などはイベントごとに日程・定員などをカスタムフィールドで設定し、送信内容で値を更新、定員や期日に達したらフォームを締め切る。
時間枠ごとに定員のある予約受付は、日程表を作る関数とメールフォームの送信内容でカスタムフィールドを更新する関数で管理します。

メールフォーム日時予約受付のサンプル

リマインドメール

Contact Form 7 の送信時にMail Poet に登録するアドオンを利用して、Mail Poet から一斉に送信する。
あるいは、Advanced Custom Fields とwp_mail関数で投稿の更新時にメール送信も可能。

ACFとCF7 予約・申し込み受付からリマインドメールまで

投稿データの読み込み

例えば商品を選ぶ、など、投稿データを読み込みたい場合

Contact Form 7 セレクトボックスのオプションを動的に

または、wpcf7_add_form_tag でテンプレートを読み込むなど