自己紹介
ホームページ制作&webに関するスキルシェアをしています。
今回は、wordpressでお問合せボタンを押した時に、どのページからお問い合わせをしたのか情報が引き継いだら良いのにな~と思った時に使える、contact form7のカスタマイズ方法を紹介します。
contact form7での設定
<label>お問合せ元ページタイトル
[text* title]</label>
<label> お名前 (必須)
[text* your-name] </label>
<label> 電話番号 (必須)
[tel* your-tel] </label>
<label> メールアドレス (必須)
[email* your-email] </label>
<label> メッセージ本文
[textarea your-message] </label>
[submit "送信"]
function.php ファイルへ追記
pageIDをフックに、そのページのタイトルとURLを取得します。
$tag[‘name’] == ‘title’
という箇所ですが、contact formの設定でページのタイトルを自動出力する箇所の名前に[text* title]と記述しているので、右の値がtitleとなります。
function wpcf7_get_post_data( $tag ){
if( !is_array( $tag ) ) return $tag;
//クエリに[post_id]がセットされているか
$post_id = ( isset( $_GET['post_id']) && $_GET['post_id'] ) ? $_GET['post_id'] : false;
//[post_id]がある場合
if( $post_id ) {
if( $tag['name'] == 'title' ) {
$title = get_the_title( $post_id );
$tag['values'] = array( $title );
}
}
return $tag;
}
add_filter( 'wpcf7_form_tag', 'wpcf7_get_post_data' , 11 );
お問い合わせフォームを出力させる時
ページの番号を?post_id=番号の箇所へ入れてあげるとタイトルを引き継ぐことが出来ます。
<a href="http://自分のドメイン.com/contact/?post_id=番号">問い合わせ</a>
functionをいじるので、ちょっと怖いかもという方には、以下の設定がお勧めです。
今までの説明は、
固定ページ ⇒ お問い合わせフォーム
と画面を移行するけれど前のページの情報を引きつぐという内容だったのですが、
これから紹介する内容は、
「固定ページ(投稿ページ)でお問い合わせフォームを出力している」
場合に使える超~簡単な方法になります!
contact form7に特殊なメールタグが存在
今回は[_post_title]を使います。
その他にも
IPアドレス取得[_remote_ip]
ブラウザ情報取得[_user_agent]
コンタクトフォーム設置のURL[_url]
送信日[_date]
送信時間[_time]
その他にも色々あるみたいでcontact form7で使える特殊なメールタグ公式サイトを参考にしました。
投稿ページ内部に埋め込まれている時に使えるメールタグ
[_post_id] — このタグは投稿の ID で置き換えられます。
[_post_name] — このタグは投稿の名前(スラッグ)で置き換えられます。
[_post_title] — このタグは投稿のタイトルで置き換えられます。
[_post_url] — このタグは投稿のパーマリンク URL で置き換えられます。
[_post_author] — このタグは投稿の作成者名で置き換えられます。
[_post_author_email] — このタグは投稿の作成者のメールアドレスで置き換えられます
メールタグを挿入するだけだった
メールの設定に[_post_title]を入れるだけでした。
なんと簡単。
まとめ
ネットショップ風だったり、前のページの情報を受け取りたい時はfunctionへの追記、簡単に実装したい方はcontact form7の特殊なメールタグを利用してみてください!