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のショートコードを利用

2016-07-28_12h37_00_072816_123758_PM
(1) Contact Form DBのShortcodeを選択
(2) 利用するContact Form 7のタイトルを選択
(3) cfdb-countを選択

スクリーンショット_072816_123846_PM
表示された ショートコードをコピー
[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名の同時申し込みがあると、件数オーバーの可能性がありますので、注意してください。