MW Form 予約数を保存

情報を追記している場合はありますが、古い情報を訂正はしていませんので、
公開日時・更新日時を参照してください。2021.05.20公開


MW Form で予約フォームを設置しているサイトで予約が上限に達したときに自動で受付終了できないかと言う話。

フォームを設置したページに予約可能数と予約受付数のフィールドを作成、
フォームの予約数はナンバーフィールドを利用して、上限に予約可能数のフィールドの値を入れる、
送信完了時にそれぞれを更新、
予約可能数が0になったらフォームを非表示、*フィールドはACFを利用

function my_mwform_after_send( $Data ) {
  if ( $Data->get_form_key() === 'mw-wp-form-xx' ) {
	$id = $Data->get( 'id' ); 
	$seat = get_field('seats', $id);
	$select = (int) $_POST['select']; 
	$addition = $seat + $select; 
	update_field('seats', $addition, $id);
	$available = get_field('available', $id); 
	$minus = $available - $count; 
	update_field('available', $minus, $id);
  }
}
add_action( 'mwform_after_send_mw-wp-form-xx', 'my_mwform_after_send' );

追記:
申し込みページに遷移する場合は $id = $_GET[‘post_id’]; でIDを取得する。
テーマ上にdo_shortcodeでフォームを表示する場合、ページ遷移していなくてもURLに投稿IDのパラメータが付いていないと予約可能数を取得できないので注意。


情報を追記している場合はありますが、古い情報を訂正はしていませんので、
公開日時・更新日時を参照してください。 2021.05.20公開