コーディング

ContactForm7 ドロップダウンのラベルと値を設定する

  • このエントリーをはてなブックマークに追加

こんにちは

制作部 カワサキです。

 

オリンピックも折り返しですね

(冒頭に時節の話題入れてみたけど、全然見てないわ・・・・)

なので、これ以上の事は変えません(;’∀’)

 

ContactFormでドロップダウンリスト作るときは

[select  item_year “1年以内” “2年以内” “3年以内”]

こんな感じでショートコード書くと思います。

 

この状態だと、option項目のVALUEとラベルが同じ値になります。

<option value=”1年以内”>1年以内</option>

これを

<option value=”1″>1年以内</option>

にしたい時がある時は

 

ContactForm7で用意してある、パイプを使って

[select  item_year “1年以内|1” “2年以内|2” “3年以内|3”]

こんな感じで書けばいいんですけど

パイプを使って送信先を選択可能に

 

何故か、動かなかったんですよ・・・・・

散々調べても原因が不明(/ω\)

 

仕方がないので

function.phpでvalueとlabelを書き換える方法で何とか回避

function filter_wpcf7_form_tag( $scanned_tag, $replace ) {
if(!empty($scanned_tag)){
//nameで判別
if($scanned_tag[‘name’] == ‘item_year’){
//$scanned_tagに情報を追加;

$scanned_tag[‘values’][] = ‘1’;
$scanned_tag[‘labels’][] = ‘1年以内’;

$scanned_tag[‘values’][] = ‘2’;
$scanned_tag[‘labels’][] = ‘2年以内’;

$scanned_tag[‘values’][] = ‘3’;
$scanned_tag[‘labels’][] = ‘3年以内’;

}
}
return $scanned_tag;
};
add_filter( ‘wpcf7_form_tag’, ‘filter_wpcf7_form_tag’, 11, 2 );

これで無事に

<option value=”1″>1年以内</option>

に変わりました。

 

普通はパイプで動くはずなので、回避策として知ってて損はないかと思います。

  • このエントリーをはてなブックマークに追加