Contact Form 7でパラメータをフィールド初期値に入れ込む
あけましておめでとうございます!
年末年始、テレビばっかり見ていたので、初出社後どうも感覚が戻ってません。いつか箱根駅伝の大手町ゴールを見に行きたい…
株式会社まちいろのフロントエンドエンジニア(仮)の日高です。
またしてもWordpressのContact Form 7 ネタです。
今回は、パラメータとして渡ってきた値をフィールド(テキストフィールド)の初期値に入れ込むお話です。
ちなみに前回はこちら。日付フィールドのお話を書きました。
どういうこと?
例えば、/contact?name=hidaka というURLでパタメータが渡ってきたとします。
パラメータの値(hidaka)をテキストフィールドに入れ込みます。
HTMLやPHPではパラメータをgetしてその値を該当のフォームに差し込みます。
自作のフォームでなく、Contact Form 7 を使ったフォームの場合どうやって取得したパラメータを入れたら良いのでしょうか??
Contact Form 7 のフォームタグに一工夫
難しいコードを書く必要はありません。フォームを作る際のフォームタグに一工夫するだけです。
まずは名前を入れるフィールドを準備します。この時、フィールド名はパラメータ名と同じものにします。
作成したフォームタグに default:get という設定を追加します。
さらに、書き込み不可フィールドとする場合はreadonly設定も追加します。
[text name default:get readonly]
こうすることで、nameというパラメータの値がフィールド(name)に初期値として設定されます。
危うく自作するところだった…
JavaScriptを使ってフィールドに無理やり値を差し込むパターンも考えたのですが、諸々調べてこの方法にたどり着きました。
たった1行で解決できるのは素晴らしい!
Contact Form 7 さんありがとうございます!!
この記事が気に入ったらサポートをしてみませんか?