【第一回】WordPressでよく使われるフォーム(MW WP Form)についていろいろ便利フックをまとめてみた。
MW WP FORMとは?MW WP Form — WordPress PluginsMW WP Formは、WordPressを使用したサイトでお問い合わせフォームや応募フォームなどの「フォーム」を簡単に...
MW WP Form — WordPress Plugins
MW WP Formは、WordPressを使用したサイトでお問い合わせフォームや応募フォームなどの「フォーム」を簡単に作れるWordPressのプラグインです。
前回より、このプラグインのフィルターフック・アクションフック使ってできるあらゆるカスタマイズをご紹介しています。
前回では
・ケース1:○○が入力や選択がされていたら△△を必須にしたい!
・ケース2:記事からお問い合わせに移動したときに前に見ていた記事の情報をお問い合わせに引き継ぎたい。
・ケース3:郵便番号を入力したら自動的に住所欄に住所が入るようにしたい。
というケースをご紹介していきました。
関連記事
今回は下記のようなフィルターフックやアクションフックを使ってできるカスタマイズ例をご紹介していこうと思います。
サイトに関するお問い合わせにて「サイトが見れません。」などのお問い合わせを受けることがあると思います。
そうしたときにお客様に「どのブラウザで、どういった環境でご覧になられていますでしょうか」などと聞くというのは、双方にストレスが溜まってしまうと思います。
フォームを入力した際に、「いつ」「どのブラウザで」「どのIPアドレスを使用して」「どこから来たのか」という情報を事前に取得することができていると、メールを受け取った際にすぐに調査を行うことができます。
この「いつ」「どのブラウザで」「どのIPアドレスを使用して」「どこから来たのか」という情報を事前にフォームに仕組むことができるフィルターフックがあるのでご紹介します。
参考URL:https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_custom_mail_tag_mw-wp-form-xxx/
今回は「mwform_custom_mail_tag_mw-wp-form-xxx」を使い先ほどの「いつ」「どのブラウザで」「どのIPアドレスを使用して」「どこから来たのか」を取得するコードを作ってみました。こちらを使用しているfunction.phpに追記していただければと思います。
<?php
function send_date_time( $value, $key, $insert_contact_data_id ) {
if ( $key === '送信日' ) {
return date( 'Y/m/d l H:i:s' );
}
if ( $key === 'ユーザーのブラウザ' ) {
return $_SERVER[ 'HTTP_USER_AGENT' ];
}
if ( $key === 'ユーザーのIPアドレス' ) {
return $_SERVER[ 'REMOTE_ADDR' ];
}
if ( $key === 'どこから来たか' ) {
return $_SERVER['HTTP_REFERER'];
}
return $value;
}
add_filter( 'mwform_custom_mail_tag_mw-wp-form-xxx', 'send_date_time', 10, 3 );
?>
※前回から見ていただいている方はお分かりかと思いますが、xxxはフォームIDになります。
フォームIDはコチラを参考に見ていただければと思います。
関連記事
—–
送信日
{送信日}
ユーザーのブラウザ
{ユーザーのブラウザ}
ユーザーのIPアドレス
{ユーザーのIPアドレス}
どこから来たか
{どこから来たか}
—–
と入れておくと、送信日やエンドユーザーがフォームを送った時のブラウザや前に何を見てフォームにたどり着いたかなどを取得することができます。
また、PHP使われている「$_SERVER」なのですが…
前回、記載した「ブラウザがサーバーにアクセスする際ブラウザとサーバーは何している?」
関連記事
内でご紹介した「HTTPプロトコル」と連動しています。その中で触れたCookieを利用してみると
http://www.sunpla-group.com/overview/sales/
こういったサイトで、お客様がお気に入りに入れている情報もフォーム送信時に取得することができるようになります。
先ほどのコードにお気に入りのCookie名が「booking」として取得するコードを記載してみます。
<?php
function send_date_time( $value, $key, $insert_contact_data_id ) {
if ( $key === '送信日' ) {
return date( 'Y/m/d l H:i:s' );
}
if ( $key === 'ユーザーのブラウザ' ) {
return $_SERVER[ 'HTTP_USER_AGENT' ];
}
if ( $key === 'ユーザーのIPアドレス' ) {
return $_SERVER[ 'REMOTE_ADDR' ];
}
if ( $key === 'どこから来たか' ) {
return $_SERVER['HTTP_REFERER'];
}
if ( $key === 'ユーザーの現状のお気に入りリスト' ) {
$booking = filter_input(INPUT_COOKIE, 'booking');
if(!empty($booking) or is_array($booking)) {
return implode(',', $booking);
}
}
return $value;
}
add_filter( 'mwform_custom_mail_tag_mw-wp-form-xxx', 'send_date_time', 10, 3 );
?>
あとは管理者宛てメール設定内に先ほどと同じように
—–
送信日
{送信日}
ユーザーのブラウザ
{ユーザーのブラウザ}
ユーザーのIPアドレス
{ユーザーのIPアドレス}
どこから来たか
{どこから来たか}
ユーザーの現状のお気に入りリスト
{ユーザーの現状のお気に入りリスト}
—–
とすれば、ユーザーのお気に入りに入れている記事のIDなどの情報がカンマ区切りで取得することができるようになります。
これを、フォームとして入れるのは個人情報的にどうなのか?と思いますが。。。
こういったカスタマイズができるというのを知っていると何か他の事例で使えるのかもしれません。
はじめに家のポストを覗くとポスティングのチラシが入っていたーーよくある光景です。ピザ屋、整骨院、不動産と種類は様々。刷り方も違えば、色数、サイズも...
自分のオリジナルなテーマテンプレートを作ってみたい!とWordPressサイトを作っていると出てくるのではないでしょうか。そして、codexなどのサイトを色々見...