WordPress(ワードプレス)のお問い合わせフォームプラグイン「ContactForm7」で、参考元によってドロップダウンメニューの項目を自動で変更する方法をメモ。
目次
はじめに
すでにお問い合わせフォームプラグイン「ContactForm7」が稼働しており、ドロップダウンメニューを使用している前提になります。
ドロップダウンメニューの名前を「select_plan」とします。
カスタムフィールド プラグインを入れる
参考:Advanced Custom Fields
まず、カスタムフィールドを利用するためにプラグイン「Advanced Custom Fields」をインストールして有効化します。
左メニューから「カスタムフィールド」→「新規追加」からカスタムフィールドを使用する条件を設定します↓↓↓
タイトルは自由で、「フィールドを追加」から数値の受け渡しに使うラベルを決めます。
今回は、タイトルを「参考値」、ラベルを「rv」とし、名前も「rv」、タイプは「テキスト」とします。
「位置」の項目でカスタムフィールドを使用するルールを決めます。
ここでは、「固定ページのみ」や「投稿メージのみ」、「特定のテンプレートのみ」などが設定できます。
今回は、「ページテンプレート」「等しい」「デフォルトテンプレート」とします。
これで、固定ページのデフォルトテンプレートの場合のみカスタムフィールドが使えるようになります。
右上の「更新」をクリックして保存します。
参考元に参考値を設定しておく
次に、参考元となるページに参考値を設定しておいきます。
ここに入力した値が、次のページへ受け渡されます。
ページの編集画面を開くと、本文エリアの下にカスタムフィールドが表示されていると思います↓↓↓
ここには、お問い合わせフォームのドロップダウンメニューの「何番目」の数値を入れておきます。
ここでは「2」とします。
ページを更新して保存。
aタグに参考値を埋め込む
入力した参考値を次のページに持っていくための設定です。
以下のようなお問い合わせフォームへのリンクを↓↓↓
<a href=”お問い合わせURL”>お問い合わせはコチラ</a>
次のように変更します↓↓↓
<a href=”お問い合わせURL/?select_plan=<?php echo get_post_meta($post->ID , ‘rv’ ,true); ?>”>お問い合わせはコチラ</a>
これで、このページからお問い合わせに行った時のURLが次のようになるはずです↓↓↓
お問い合わせURL/?select_plan=2(参考値)
「function.php」に受け渡しコードを入れる
次に、「function.php」に参考値を受け渡すためのコードを入れます。
function.phpページを編集する前に必ずバックアップを取り、自己責任で行ってください。
下記のコードを「function.php」の一番下にコピペします↓↓↓
function webzero_form_select_filter($tag) {
$formName = ‘select_plan’; //ドロップダウンメニュー名
if ( ! is_array( $tag ) )
return $tag;
if( isset($_GET[$formName]) ) {
$name = $tag[‘name’];
if( $name === $formName ) {
if( is_array( $tag[‘values’] ) ) {
$index = $_GET[$formName];
if( $index !== false ) {
$tag[‘options’][$key] = ‘default:’ . $index; //デフォルト値設定
}
}
}
}
return $tag;
}
add_filter( ‘wpcf7_form_tag’, ‘webzero_form_select_filter’, 11, 2);
参考:Contact Form 7のセレクトボックスに前ページの値を渡してセットする方法
上手くいかない場合
これで、参考元によってドロップダウンメニューの内容があらかじめセレクトされた状態になるはずです。
もし美味くいかない場合は以下のことを確認してみてください↓↓↓
- ドロップダウンメニュー名が違う
- お問い合わせURLの後の「/」が抜けている(「/」は1つ)
- お問い合わせURLの後の「/」の後の「?」が抜けている
- 参考値が全角数字になっている
以上です。
Byさちお
元シンガーソングライターで、メンズ美容ブログ、パンブログもやってます。たまにテレビに出てたりします。最近はTikTokも頑張ってます。