最近の業務の5%くらいは、WordPressで構築されたサイトのバグ修正とか機能追加をやっています。
Contact Form 7 に値を渡す際に、URLパラメーターとして値を渡す記事はたくさんあるのですが、POSTで渡す記事がちゃんとなかったのでメモがてら残します。
single.php
// 例えば、single.phpとかに以下を書く
<form action="contact form 7で構築したページのURL" method="post" name="form1">
<input type="hidden" name="hogehoge" value="渡す値">
<a href="javascript:form1.submit()">fugafuga</a>
</form>
function.php
// function.phpに以下を書く
function my_form_tag_filter($tag){
if (!is_array($tag)){
return $tag;
}
if(isset($_POST['hogehoge'])){
$name = $tag['name'];
if($name == 'hogehoge')
$tag['values'] = (array) $_POST['hogehoge'];
}
return $tag;
}
add_filter('wpcf7_form_tag', 'my_form_tag_filter');
// Contact Form 7内の設定で、以下で取得
[text* hogehoge default:post class:readonly readonly]
hogehoge
とdefault:post
以外は、用途に合わせて変更してください。