wordpress wm-wp-form 联系我们表单,发送邮件记录访客IP信息实现方法

//お問い合わせフォームで送信元情報を取得する

管理员收信方
function getuseripaddrs(){
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
        //ip from share internet
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        //ip pass from proxy
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }else{
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
function my_admin_mail( $Mail, $data ) {
     $Browser = $_SERVER["HTTP_USER_AGENT"];
     $Ip= getuseripaddrs();
     $Host = gethostbyname($_SERVER['SERVER_NAME']);
     $org_timezone = date_default_timezone_get();
     date_default_timezone_set('Asia/Tokyo');
     $Datetime = date("Y年n月j日 H:i:s");
     date_default_timezone_set($org_timezone);
     //$Mail->body .= "\n【送信者情報】\n・ブラウザー:" .$Browser. "\n・送信元IPアドレス:" .$Ip. "\n・送信元ホスト名:" .$Host. "\n・送信日時:" .$Datetime;
     $Mail->body .= "\n【送信者情報】\n 送信日時:" .$Datetime. "\n ブラウザ:" .$Browser. "\n ホスト名:" .$Host. "\n IP:" .$Ip;
     return $Mail;
}
add_filter( 'mwform_admin_mail_mw-wp-form-xxxxx', 'my_admin_mail', 10, 3 );

在function.php 中直接加入以上函数即可,系统会自动在管理员收信 末尾加上如下信息。

【送信者情報】
送信日時:2019年9月30日 17:02:32
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
ホスト名:139.129.209.169
IP:13.78.46.13

//********************************************************//

访客客户端

/**
* {user_agent} UAに変換
* {ip} IPに変換
* {host} HOSTに変換
* {send_datetime} 送信日時に変換
*
* @param string $value 送信された値
* @param string $key メールタグ
* @param int $insert_contact_data_id データベースに保存した場合、そのときの Post ID
*/
function add_sender_info( $value, $key, $insert_contact_data_id ) {

if ( $key === 'user_agent' ) {
return $_SERVER["HTTP_USER_AGENT"];
}
if ( $key === 'ip' ) {
$ip = $_SERVER["REMOTE_ADDR"];
return $ip;
}
if ( $key === 'host' ) {
$host = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
return $host;
}
if ( $key === 'send_datetime' ) {
   $org_timezone = date_default_timezone_get();
   date_default_timezone_set('Asia/Tokyo'); //タイムゾーンを日本に
   $Datetime = date("Y年n月j日 H:i:s");
   date_default_timezone_set($org_timezone); //タイムゾーン戻す
   return $Datetime;
}

return $value;
}

add_filter( 'mwform_custom_mail_tag_mw-wp-form-xxxxx', 'add_sender_info', 10, 3 );

在function.php 中加入以上函数,并在回执访客邮件中加入。

送信者情報
ブラウザー:{user_agent}
IPアドレス:{ip}
Host:{host}
Date:{send_datetime}

其中 mw-wp-form-xxxxx 中的 xxxxx 为 表单ID。

你可能感兴趣的:(WORDPRESS)