質問: 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; ``` このように、名前、メールアドレス、メッセージを送信するようになっているのですが、ここにページのurlを加えたいです。ページのurlをフォーム送信時に取得し、送信するのはどうすればいいでしょうか?
回答: 「このフォーム」とか「そのページ」とか「ページのurl」とか「フォームから送られた」とかetc... 曖昧に記述するから混乱する。 * 其々のページから、ajaxで/wp-admin/admin-ajax.phpへリクエストしてる。 -- http://www.example.com/page_a -- http://www.example.com/page_b -- http://www.example.com/page_c * 質問記載のPHPソースは/wp-admin/admin-ajax.phpに記述している この時、メールに http://www.example.com/page_a からリクエストされた時は"http://www.example.com/page_a"を http://www.example.com/page_b からリクエストされた時は"http://www.example.com/page_b"を http://www.example.com/page_c からリクエストされた時は"http://www.example.com/page_c"を それぞれメールの本文に記載したい。 以上のように質問を理解しましたがあってますか? 合っているなら「情報の追加・修正の依頼をする」でどなたかが指摘されてますがリファラを取得すればいいです。 $_SERVER['HTTP_REFERER'] で取得できます。 ただし、$_SERVER['HTTP_REFERER']はいくらでも偽装可能なので正しいものかどうかチェックしてください。 ``` $url = ""; if (isset($_SERVER['HTTP_REFERER'])) { $url = $_SERVER['HTTP_REFERER']; // $_SERVER['HTTP_REFERER']はいくらでも偽装可能なのでチェックしてください。 // if (チェックNG) { // $url = ''; // } } $subject = 'From '.$name; $body = "Name: $name \n\nEmail: $email \n\nMessage: $message\n\n$url\n\n"; $headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; ```