WordPressカスタマイズ事例

会員登録しているユーザの情報をContact Form 7のフォームに自動挿入する

会員サイトで、非会員にも会員にも同じ問い合わせフォームを使わせたいとします。
そのとき、当然ですが会員情報はサイト側で持っているわけなので、わざわざ会員ユーザに手入力してもらうまでもなく、フォームにはその情報が自動で入るようにするのが親切ですよね。

テーマのfunction.phpに下記のように記述すると自動挿入できます。

function wpcf7_form_tag_filter($tag){
    if(is_admin() || !is_array($tag)) return $tag;

    $name = $tag['name'];

    $user = wp_get_current_user();
    if($user) {
        if($name == 'zip') { $tag['values'] = (array) $user->user_zip; }
		if($name == 'tel') { $tag['values'] = (array) $user->user_tel; }
        if($name == 'address1') { $tag['values'] = (array) $user->user_address1; }
	    if($name == 'address2') { $tag['values'] = (array) $user->user_address2; }
    }
    return $tag;
}
add_filter('wpcf7_form_tag', 'wpcf7_form_tag_filter', 11);

”user_tel”とか”user_address1”とかは、ユーザのカスタムメタ情報です。
(そもそもカスタムメタ情報ってどうやって登録できるの?という方は、こちらを参照ください。

  ユーザープロフィールの項目のカスタマイズ

さて、話を戻して、
contact form 7のフォーム編集画面はこんな記述にします。

text your-name default:user_first_name
text your-furigana default:user_last_name
text zip default:user_zip id:zip
text address1 default:user_address1
text address2 default:user_address2
tel tel default:user_tel

(各行[]で囲ってください)

※ ”user_first_name”と”user_last_name”はcontact form 7側であらかじめ定義されていて、それぞれログインしているWordPressユーザーのユーザーの名、ユーザーの姓をセットしてくれます。

これで完成!


その他のWordPressカスタマイズ事例