0

以下の 2 つの関数を使用して、フォームのメール本文に挿入される変数にリファラー情報を格納しています。最初の参照サイトまたは URL を 1 つの変数に格納し、通常の参照 URL を別の変数に格納する必要があります。基本的に、訪問者を紹介した最初のページまたは検索エンジンを取得し、連絡先フォームにアクセスする前に訪問したサイトの最後のページを保存する必要があります。2 番目の部分は、HTTP_REFERRER を取得する最初の関数で動作します。しかし、元のリファラーを取得するための関数 (関数 getFirstPage) は、変数で連絡先ページの URL を送信するだけです。

function getRefererPage( $form_tag )
{
        if ( $form_tag['name'] == 'referer-page' ) {
                $form_tag['values'][] = $_SERVER['HTTP_REFERER'];
        }
        return $form_tag;
}
function getFirstPage( $form_tag )
{
session_start();
        if (!isset($_SESSION["origURL"]))
            $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

        if ( $form_tag['name'] == 'first-page' ) {
            $form_tag['values'][] = $_SESSION["origURL"];
        }
        return $form_tag;
}
if ( !is_admin() ) {
        add_filter( 'wpcf7_form_tag', 'getRefererPage' );
}
if ( !is_admin() ) {
        add_filter( 'wpcf7_form_tag', 'getFirstPage' );
}

関数 getFirstPage に元のリファラーを取得するには、何を変更すればよいですか?

4

1 に答える 1

0

このコードは、すべてのページに配置できます (または、他のすべてのページに含まれる PHP ファイルに配置できます。フレームワークまたは CMS を使用している場合は、index.php に配置できます)。このコードは、非アクティブ状態が 20 分間続くと、最初に参照ページを保存します。誰かがあなたのウェブサイトを開くときはいつでも、という意味です。

if (isset($_COOKIE['firstPageRef'])){
    setcookie('firstPageRef', $_COOKIE['firstPageRef'], time() + 1200); // Extend for an other 20Min
}else{
    setcookie('firstPageRef', $_SERVER['HTTP_REFERER'], time() + 1200); // Save ref page for first time
}

次に、このコードを使用して、どのサイトがユーザーを Web サイトにリダイレクトしたかを調べることができます。必要なときに呼び出します。

function GetFirstRef(){
    if (isset($_COOKIE['firstPageRef'])
        return $_COOKIE['firstPageRef'];
    return false;
}
于 2013-01-31T19:35:36.080 に答える