[WP]WordPressでお問い合わせフォームへ値を引き継ぐ方法

WordPressでお問い合わせフォームを使用する場合、何のページからのお問い合わせか自動で入って欲しい、とか、セレクトボタンで選んだ項目をフォームにも表示させて欲しいと要望があったので、調べてみた。

また悩むのも嫌なので、覚え書き。検証はContact form7でしてみました。

「記事タイトル」をフォームに表示させる方法

「/wp-content/plugins/contact-form-7/includes/」にある、functions.phpを編集。
一番下にでも、下記を追加。

function my_form_tag_filter($tag){
if ( ! is_array( $tag ) )
return $tag;
if(isset($_GET['好きな値'])){
$name = $tag['name'];
if($name == '好きな値')
$tag['values'] = (array) $_GET['好きな値'];
}
return $tag;
}
add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11);

 

あとは「/themes/」内の該当PHPにお問い合わせフォームへのリンクを挿入。
(/contact/がリンク先で、好きな値をtitleにした場合)

<form action="<?php echo home_url(); ?>/contact/" method="post">
<input type="hidden" name="title" value="<?php the_title(); ?>">
<input type="submit" value="お問い合わせはこちら">
</form>

「セレクトボタン」で選択した値をフォームに表示させる方法

「/wp-content/plugins/contact-form-7/includes/」にある、functions.phpを編集。
一番下にでも、下記を追加。

function my_form_tag_filter($tag){
if ( ! is_array( $tag ) )
return $tag;v if(isset($_POST['好きな値1'])){
$name = $tag['name'];
if($name == '好きな値1')
$tag['values'] = (array) $_POST['好きな値1'];
}
if(isset($_POST['好きな値2'])){
$name = $tag['name'];
if($name == '好きな値2')
$tag['values'] = (array) $_POST['好きな値2'];
}
return $tag;
}
add_filter('wpcf7_form_tag', 'my_form_tag_filter');

 

あとは「/themes/」内の該当PHPにセレクトボタンを挿入。


<form action="/intopetwp/sample-page/" method="post">
<select name="好きな値">
<option value="うどん">うどん</option>
<option value="そば">そば</option>
<option value="ラーメン" selected>ラーメン</option>
</select>
<select name="好きな値2">
<option value="うどん2">うどん2</option>
<option value="そば2">そば2</option>
<option value="ラーメン2" selected>ラーメン2</option>
</select>
<input type="submit" value="フォームへ">
</form>

フォームに値を表示させてメールにも記載させる。

WordPress設定画面から、対象のお問い合わせフォームを開いて、「フォームタブ」に追記。
  [text 設定した値](複数あれば、複数記載)

「メールタブ」にも追記
  [設定した値](複数あれば、複数記載)

これでいける・・・はず。

Contact Form 7でテキストボックスになっちゃうのが嫌だーって場合

下記classを追記するとテキストボックスのボーダーが取れるらしい。
[text 設定した値 class:readonly readonly]

私が試してみたら、うすーく線が残ってしまったけれど選択自体できなくなったのでOKです。
もう少しいじれば完璧になるかと。

 

下記記事を参考に検証させていただきました!ありがとうございました!!
http://www.fumufumu.info/wp/958/
http://www.doya-doya.com/diary/2010/10/04/2806

category - works
tags - Tag : ,

ページトップへ

Copyright © Ten blog All Rights Reserved.