前提・実現したいこと
Wordpressでアポ取り用のフォームを作成しています。
管理画面上で予約できない日、予約できない時間を指定してそれ以外を表示したいです。
サイトではdatepickerを使用して日付を選択してもらい、その後予約時間を選択していただいてます。
フォーム:contact form 7
できない日を選択するフィールド:acf datepicker
不可時間を選択するフィールド:acf チェックボックス
管理画面で選択する時間は固定で決まっていてその中で選択しています。
発生している問題・エラーメッセージ
テンプレートのphpで配列にしたいのですが、そのやり方がわかりません。
phpで配列を作成してjqueryに渡したくて、
お客が、日付を選択した後に、その値をvalue値で受け取り、そのvalue値と等しい配列の中身を次のセレクトボックスの中に入れたいです。参考サイトはこちら
現状はこんな感じでカスタムフィールドの値を取得していますが、これを上記の参考サイトのような配列に持っていく方法がわかりません。
(他にも日付を選択してからその日付を用いて動的に次のセレクトボックスを表示する方法があれば教えて欲しいです)
php
1<?php 2 if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 3 <?php endwhile; endif; wp_reset_query(); 4 5 $noDay_array = []; 6 if(have_rows('no-time-group')): ?> 7 <?php while(have_rows('no-time-group')): the_row(); ?> 8 <?php 9 10 the_sub_field('day'); 11 the_sub_field('time'); 12 13 $noTime_array[] = get_sub_field('day'); 14 15 ?> 16 <?php endwhile; 17 $php_json = json_encode($noDay_array); 18 ?> 19 <?php endif; ?> 20
jquery
1jQuery(function($){ 2 let sample = <?php echo $php_json?>; 3 console.log(sample); 4});
ちなみに今コンソールに吐かれているのは下記です(当たり前ですが。。)
["2021-06-20", "2021-06-27", "2021-06-25"]
そして出来れば下記のような配列を作りたいです。
管理画面で選択された日付:[チェックをつけられた以外の時間 複数] $noday = { 2021-06-20 : [ "11:00", "15:00"] 2021-06-25 : [ "13:30", "16:00"] }
どうにか方法を教えてください。
調べていますが方法が浮かびません。。
補足情報(FW/ツールのバージョンなど)
wordpress
Advanced Custom Fields Plugin for WordPress
contact form 7
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。