お問い合わせページへ移動する前のページの情報を渡して、フォームにタイトルなどの情報を自動入力する方法をご紹介いたします。
Contact Form 7に一つ前のページの情報を渡してフォームに自動入力させる方法
今回は、Contact Form 7を使って、画面遷移前のページのタイトルをテキストフォームに入力してみます。
まずは、Contact Form 7に前のページのタイトルを渡す必要があるため、お問い合わせページへ移動するためのリンクにパラメータを追加します。
例えば、お問い合わせページのスラッグがcontactだった場合、テーマファイル内で以下のように記述します。
<a href="/contact?title=<?php echo get_the_title();?>">お問い合わせへ</a>
「?title=<?php echo get_the_title();?>」を追加することで、リンク先URLにそのページのタイトルを追加します。「/contact?title=ページのタイトル」という具合になります。
Contact Form 7側では、以下のように自動入力させたいフォームに「default:get」を指定してあげます。
[text title default:get readonly]
上記では「readonly」も追加していますが、内容を変更してもOKな場合はreadonlyは外しましょう。
また、パラメータの「?title=」とContact Form 7の「title」の部分は、同じ名称に設定するようにしてください。
これで、お問い合わせへのリンクをクリックすると、前のページのタイトルがフォームに自動入力されるようになります。
あとがき
クライアントからの要望で、商品の予約フォームに実装してみました。カート機能まではいらないけど、予約を簡単にできるようにしたいということで、今回は上記の方法を採用しました。
1種類ずつしか商品を予約できないというデメリットはありますが、複数商品を一気に予約することは稀な商品なため、この方法でも十分役立っています。
今回はページのタイトルで説明しましたが、タイトル以外でも情報を渡すことは可能です。お問い合わせフォームにContact Form 7を使っていて、同じような機能を実装したい方はぜひ参考にしていただければと思います。