[WP]WordPressでお問い合わせフォームへ値を引き継ぐ方法(その2)
2018年2月16日
以前投稿した[WP]Wordpressでお問い合わせフォームへ値を引き継ぐ方法では、contact form7を使ってフォームに値を引き継ぐ方法を試してみましたが、MW WP Formを使う機会の方が多いので、今度はMW WP Formでの引き継ぎ方法をメモしておきます。
ページタイトルを引き継ぐ方法
どのページからお問い合わせフォームへ来たかお問い合わせフォームに記載したい場合に、ページタイトルを引き継ぐことも多いかと思います。
実際、これが一番手間が少なくて簡単かな。
手順は下記。
(1)MW WP Formでフォームを作成
MW WP Formでフォームを作成。その際ページタイトルを引き継ぎたい場所に{post_title}を入れる。
画面右下のほうにある「URL引数を有効にする」にチェックを入れる。
「フォーム識別子」をコピーしたら「公開」ボタンをクリック。
(2)お問い合わせフォームのページ作成
固定ページなどで新規ぺージを作成。
先ほどコピーした「フォーム識別子」を投稿部分に貼り付けし、お問い合わせフォームのページを作成する。
(3)お問い合わせフォームへの引き継ぎタグ挿入
これで、お問い合わせフォーム作成とページタイトルを引き継ぐ準備は完了したが、実際にページタイトルを引き継ぐには、"どのページ" のタイトルかを受け渡さないといけない。
ようは、ページIDをお問い合わせフォームに受け渡せばOK。
例えば値を引き継ぐページが商品ページだったとして、商品ページは数ページだけしかなくページの追加もないというのなら、各商品ページの投稿欄に
<a href="お問い合わせフォームURL/?post_id=5">お問い合わせ</a>
(このタグを記載する商品ページのIDが5の場合)
と、お問い合わせフォームへのリンクを記載するだけで良い。
ただ、商品ぺージが数ぺージで商品ぺージの追加もないなどということは稀かと思うので、そうでない場合は商品ページ用のテンプレートを作成し、ぺージ追加されても自動で表示されるようにする方が良いかと思う。
で、商品ぺージ用テンプレートphpに書く場合は、
<a href="<?php echo esc_url(home_url('/')); ?>contact/?post_id=<?php echo $post->ID; ?>">お問い合わせ</a>
と書いておくと、ぺージIDを自動で判別してくれる。
最後に、ぺージプレビューをしてお問い合わせフォームへ値が引き継がれているか確認する。
なお、お問い合わせフォームでは、{post_title}をmwform_textやmwform_textareaなどへ表示させると、お問い合わせしようとしていた時に変更できてしまう。(ぺージタイトルが引き継がれても、入力者サイドで好きな文字に変更できる)
それでは困るという場合、jsやcssで変更できない(カーソルが入らない)ようにするか、そもそも変更できないradioに反映させるかすると良いかと。
ただ、お問い合わせフォームを直接開いた場合、{post_title}が引き継がれずに空白で表示されるので、変更できないようにしていた場合何も入力できなくなるので注意。
その他の値を引き継ぐ方法
ぺージタイトル以外をお問い合わせフォームへ引き継ぐ場合は、詳細ぺージを作成する際に「表示オプション」内にある「カスタムフィールド」を使用して名前を設定すると良いかと。
お問い合わせフォームの表示させたい場所に、{設定した名前}を記載すれば値が引き継がれる模様。
いろいろ試してみると、利用価値が広がりますね。