Contact Form 7をイベントの応募に利用しております。
そんな時に、先着何名様の仕組みを追加したいというお問い合せが来ました。
はて?どうしよう・・・
Contact Form 7はメールを送信するプラグインだから、おそらくカウントなんて、とっていないだろう。
以下の方法で、対応しました。
※ ちなみに、100%の結果ではありません。数量限定など、物理的に制限がある場合オススメしない方法です。
利用するプラグイン
Contact Form 7 https://wordpress.org/plugins/contact-form-7/
Contact Form DB https://wordpress.org/plugins/contact-form-7-to-database-extension/
概要
Contact Form DBは画面より入力されたデータを、DB上に保存するプラグインなので、そのレコード件数を取得して、規定数を超えたら、フォームをクローズさせる。
レコード件数を取得する方法
Contact Form DBのショートコードを利用
(1) Contact Form DBのShortcodeを選択
(2) 利用するContact Form 7のタイトルを選択
(3) cfdb-countを選択
表示された ショートコードをコピー
[cfdb-count form=”2016年花見”] ・・・ ※1
※1を投稿画面の本文に貼り付けると、件数が表示されます。
しかし、今回は応募件数でハンドリングしたい。
ショートコードの値をphpの変数に格納すれば、phpでif文やswitch文で対処可能です。
[html]
< ?php
$intcnt= do_shortcode('[cfdb-count form="2016年花見"]');
echo "XXZXX " .$intcnt."XXZXX"
?>
[/html]
特記事項
上記方法だと、画面表示に現在の件数を取得してのハンドリングを行うので、
後1名の時に、2名の同時申し込みがあると、件数オーバーの可能性がありますので、注意してください。