0

我使用下面的两个函数将引用信息存储在插入表单电子邮件正文的变量中。我需要将第一个引用站点或 URL 存储在一个变量中,将正常的引用 URL 存储在另一个变量中。基本上,我需要获取推荐访问者的第一页或搜索引擎,然后在访问联系表之前将最后一页存储在他们访问的我的网站上。第二部分与获取 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
}

然后使用此代码,您可以找出将用户重定向到您的网站的站点:在需要时调用它:

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