【第二回】WordPressでよく使われるフォーム(MW WP Form)についていろいろ便利フックをまとめてみた。

MW WP FORMとは?

MW WP Form — WordPress Plugins

 MW WP Formは、WordPressを使用したサイトでお問い合わせフォームや応募フォームなどの「フォーム」を簡単に作れるWordPressのプラグインです。

前回より、このプラグインのフィルターフック・アクションフック使ってできるあらゆるカスタマイズをご紹介しています。

 前回では

・ケース1○○が入力や選択がされていたら△△を必須にしたい!

・ケース2:記事からお問い合わせに移動したときに前に見ていた記事の情報をお問い合わせに引き継ぎたい。

・ケース3:郵便番号を入力したら自動的に住所欄に住所が入るようにしたい。

というケースをご紹介していきました。 

前回記事:【第一回】WordPressでよく使われるフォーム(MW WP Form)についていろいろ便利フックをまとめてみた。

関連記事

 

 今回は下記のようなフィルターフックやアクションフックを使ってできるカスタマイズ例をご紹介していこうと思います。

  

 

 

ケース1:フォームを入力している人の情報を取得し管理者宛てメールに付随させる。

サイトに関するお問い合わせにて「サイトが見れません。」などのお問い合わせを受けることがあると思います。

そうしたときにお客様に「どのブラウザで、どういった環境でご覧になられていますでしょうか」などと聞くというのは、双方にストレスが溜まってしまうと思います。

フォームを入力した際に、「いつ」「どのブラウザで」「どのIPアドレスを使用して」「どこから来たのか」という情報を事前に取得することができていると、メールを受け取った際にすぐに調査を行うことができます。

この「いつ」「どのブラウザで」「どのIPアドレスを使用して」「どこから来たのか」という情報を事前にフォームに仕組むことができるフィルターフックがあるのでご紹介します。

 参考URLhttps://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コード

<?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などの情報がカンマ区切りで取得することができるようになります。

 

これを、フォームとして入れるのは個人情報的にどうなのか?と思いますが。。。

こういったカスタマイズができるというのを知っていると何か他の事例で使えるのかもしれません。

この記事と同じカテゴリの記事