こんにちは
wpcf7_form_tag フィルターで HTTP_REFERER を値に持つタグ(referer)を追加する方法はどうでしょうか。
例: functions.php に、
function my_wpcf7_form_tag_referer( $form_tag ) {
if ( isset( $_SERVER['HTTP_REFERER'] ) && $form_tag['name'] == 'referer' ) {
$form_tag['values'][] = esc_html( $_SERVER['HTTP_REFERER'] );
}
return $form_tag;
}
add_filter( 'wpcf7_form_tag', 'my_wpcf7_form_tag_referer' );
フォームの例:
[hidden referer default:get]
メールの例:
[referer]
なお、このフォーラムでコードを貼り付ける場合は、コードを選択し [code] ボタンをクリック(逆クォートで囲む)してください。
詳細は下記ページを参照してください。
https://wpdocs.osdn.jp/フォーラムへようこそ#.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E6.8A.95.E7.A8.BF
ishitaka 様
コードは囲まなければいけなかったのですね・・・
申し訳ありません。
参考コードありがとうございます!
頂きましたコードを『functions.php』に組み込んだところ、リファラURLを出力することができました。
ただ、こちらのコードだと直前のリファラURLを出力してしまうため、トップページ来訪時のリファラURLにはならないようです・・・。
続けての質問で大変申し訳ありませんが、こちらの出力を『$_SESSION』などで保存した情報に切り替えることは可能でしょうか?
お手数をお掛けいたしますが、ご教授頂けましたら幸いです。
何卒よろしくお願い致します。
大雑把なフローです。詳細はそれぞれの関数のドキュメントをご覧ください。
function my_session_start(){
if ( ! session_id() ) {
session_start();
}
}
add_action( 'init', 'my_session_start' );
function my_head() {
if ( ( is_home() || is_front_page() ) && isset( $_SERVER['HTTP_REFERER'] ) ) {
if ( !isset( $_SESSION['http_referer'] ) ) {
$_SESSION['http_referer'] = $_SERVER['HTTP_REFERER'];
}
}
}
add_action( 'wp_head', 'my_head' );
function my_wpcf7_form_tag_referer( $form_tag ) {
if ( isset( $_SESSION['http_referer'] ) && $form_tag['name'] == 'referer' ) {
$form_tag['values'][] = esc_url( $_SESSION['http_referer'] );
}
return $form_tag;
}
add_filter( 'wpcf7_form_tag', 'my_wpcf7_form_tag_referer' );
ishitaka 様
またもやコードを記述していただきましてありがとうございます!
こちらのコードのドキュメントを確認しつつ、試してみたいと思います!
今回はご教授いただき、誠にありがとうございます!