【WordPress】Contact Form 7でURLパラメーターに応じて初期値を変える方法
Contact Form 7のフォームの値をリンクごとに変えたい場合にURLパラメーターを設定して、ラジオボタンの初期値を変える方法を記載いたします。
結論
以下をfunctions.phpに追加する。
function my_form_tag_filter($tag) {
if (!is_array($tag)) {
return $tag;
}
// ラジオボタンの場合
if (isset($_GET['selected'])) {
if ($tag['name'] === 'your-radio') { // nameの値を指定
// TODO: エラー処理を加えたほうがいい
$tag['options'][] = 'default:' . $_GET['selected'];
}
}
//チェックボックスの場合
if (isset($_GET['checked'])) {
if ($tag['name'] === 'your-checkbox') { // nameの値を指定
// TODO: エラー処理を加えたほうがいい
$tag['options'][] = 'default:' . $_GET['checked'];
}
}
return $tag;
}
add_filter('wpcf7_form_tag', 'my_form_tag_filter', 10);
コンタクトフォームを設置しているページURLに ?selected=[数字]&checked=[数字] のようにパラメーターを設定することで初期値を変更できます。
checkboxのチェックを複数設定したい場合は、アンダーバーで区切れば可能です。
?checked=1_2_4 とすると1番目、2番目、4番目の項目にチェックがはいります!