Contact Form 7のお問い合わせフォームへのリンクが押された投稿のカスタムフィールドの値を取得する

harada 401views 更新:2015年12月11日

(1)functions.phpに以下のコードを追加します。

※ building_nameとroom_numberとうい値を取得したい場合

//コンタクトフォーム
function my_form_tag_filter($tag){
  if ( ! is_array( $tag ) )
    return $tag;
  if(isset($_POST['building_name'])){
    $name = $tag['name'];
    if($name == 'building_name')
      $tag['values'] = (array) $_POST['building_name'];
  }
  if(isset($_POST['room_number'])){
    $name = $tag['name'];
    if($name == 'room_number')
      $tag['values'] = (array) $_POST['room_number'];
  }
  return $tag;
}
add_filter('wpcf7_form_tag', 'my_form_tag_filter');

(2)お問い合わせボタンを設置するテンプレートに以下の記述をします。

<?php 
$building_name = post_custom("building_name");
$room_number = post_custom("room_number");
?>
<form action="<?php echo home_url(); ?>/contact/" method="post">
        <input type="hidden" name="building_name" value="<?php echo $building_name; ?>">
        <input type="hidden" name="room_number" value="<?php echo $room_number; ?>">
        <input type="submit" value="お問い合わせはこちら" class="btn btn-primary btn-lg" />
</form>

(3)お問い合わせフォームに表示するために、管理画面のコンタクトフォーム編集画面に以下を追加します。

[text building_name class:readonly readonly]
[text room_number class:readonly readonly]

参考:[WP]Contact Form 7に投稿のタイトルとカスタムフィールドの値を渡す方法
【WordPress】Contact Form 7 に値を渡すメモ

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません