予約フォームは外部の予約システムを使われるお客様がほとんどで、こちらにお鉢は回ってこないのですが、たまたま依頼があったので書いてみました。
functions.php
/* ---------- 選択肢(予約日)を生成 ---------- */
function add_reserve_date( $children, $atts ) {
if( $atts['name'] == 'reserve_date' ){
$dates = array(
date( 'Y年m月d日', strtotime( '+9hour, +3day' ) ),
date( 'Y年m月d日', strtotime( '+9hour, +4day' ) ),
date( 'Y年m月d日', strtotime( '+9hour, +5day' ) ),
date( 'Y年m月d日', strtotime( '+9hour, +6day' ) ),
date( 'Y年m月d日', strtotime( '+9hour, +7day' ) ),
date( 'Y年m月d日', strtotime( '+9hour, +8day' ) ),
date( 'Y年m月d日', strtotime( '+9hour, +9day' ) )
);
foreach( $dates as $date ){
$select = $date;
$children[$select] = $select;
}
}
return $children;
}
add_filter( 'mwform_choices_mw-wp-form-XXX', 'add_reserve_date', 10, 2 );
セレクトボックス「reserve_date」の選択肢はこれこれで、という意味。
カウントを++してwhile~で、でも書けると思うけれど、選択肢が少ないし面倒なので。
フォームはこう。
[mwform_select name="reserve_date" children=""]
デートピッカー(カレンダー)
こういうことが大抵出来るようになっているのがMW WP Formのありがたいところ。
上記関数も要らない。
[mwform_datepicker name="reserve_date" size="12" js="minDate: 3, maxDate: 9"]
3日後から9日後までの1週間のみ選択できるようになります。