フォームを定員で締め切る関数の話

Advanced Custom Fields Pro は生涯有効な開発者ライセンスを持っています。

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

もともとは、説明会の申し込みが夜の間に定員を超えてしまうというご相談から。
最初はMW Form だったので、フォームごとに定員を設ける関数を書いたが、それだと編集側で設定するのが難しいので、フォームのページにカスタムフィールド(Advanced Custom Fields)をつけて定員を設定する方法を考えた。*このときはシンプルに1つのフィールドを更新するだけ。*単発のイベントに対応

function mwform_after_send( $Data ) {
	$id = $Data->get( 'id' ); 
  if ( $Data->get_form_key() === 'mw-wp-form-871' ) {
	$number = get_post_meta($id,'number',true); 
	$minus = $number - 1; 
	update_post_meta($id, 'number', $minus);
  }
}
add_action( 'mwform_after_send_mw-wp-form-871', 'mwform_after_send' );

その後、申込み人数を選択する場合、日時の選択が複数の場合、フォームのページに遷移する場合、など、色々な想定で。
*選択が複数の場合はAdvanced Custom Fields のリピーターのサブフィールドを更新する方法、送信データをどうやって照合するか、など。

さらに、Mw Form の開発終了に伴い、Contact Form 7 に切り替えて。
支払いを伴う場合やイベントの数が多い場合は予約サイトなどを利用するほうが手軽だと思いますが、個人サロンの時間枠予約やランダムなイベントの受付などは対応可能です。
スケジュールの投稿をササッと作成する仕組みも設定できます。

CF7 送信後カスタムフィールドを更新 wpcf7_mail_sent

ACF 複数コースの日時予約サンプル

Advanced Custom FieldsとContact Form 7でメールフォームの定員締切・予約管理

Advanced Custom Fields に関する記事 新着

Advanced Custom Fields に関する記事一覧ページへ