前提・実現したいこと
WordPressプラグイン Contact Form 7で予約フォームを作成しています。
カスタムフィールドで日程をテキスト改行区切りで作成し、その値をContact Form 7のセレクトボックスに反映したいと考えています。
日程の登録
発生している問題・エラーメッセージ
https://wpno.jp/2016/12/3379/やhttps://www.webantena.net/wordpress/contact-fotm-7-hidden-title/の記事を参考にさせて頂き、URLパラメーターで予約プランのタイトル(テキスト)をフォームに渡すことはできました。
しかし、セレクトボックスの値を反映することが出来ず、一列の文字列になってしまいます。
該当のソースコード
予約フォームへのリンク
php
1<form action="<?php echo home_url(); ?>/form/" method="post"> 2 <input type="hidden" name="plan_title" value="<?php the_title(); ?>"> //タイトルの取得 3 <input type="hidden" name="form-date" value='"<?php the_field('date-plan'); ?>"'> //日付の取得 4 <input type="submit" value="予約はこちらから"> 5</form>
functions.php コンタクトフォーム7フィルターフック追加
php
1function my_form_tag_filter($tag){ 2 if ( ! is_array( $tag ) ) 3 return $tag; 4 if(isset($_POST['plan_title'])){ 5 $name = $tag['name']; 6 if($name == 'plan_title') 7 $tag['values'] = (array) $_POST['plan_title']; 8 } 9 if(isset($_POST['form-date'])){ 10 $name = $tag['name']; 11 if($name == 'form-date') 12 $tag['values'] = (array) $_POST['form-date']; 13 } 14 return $tag; 15} 16add_filter('wpcf7_form_tag', 'my_form_tag_filter');
試したこと
日程の選択肢が最大3つ程度なので、カスタムフィールドのテキストを個別用意、それぞれを
html
1<option value="12月5日">12月5日</option> 2<option value="12月15日">12月15日</option> 3<option value="12月21日">12月21日</option>
のように、<option>で囲んで渡すことができれば、と考えたのですが、これも実装方法が分からず、また、そもそもタグをURLパラメーターで渡すことが出来るのか確認出来ない状態です。
補足情報(FW/ツールのバージョンなど)
WordPress/Contact Form7共最新バージョンで作業しています。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/15 05:31