
本文介绍如何在满足特定条件(例如 URL 中包含 "partner" 关键词)时,获取并使用原始 URL 来源 (Referer)。我们将通过 PHP 代码示例,展示如何使用 session 和 WordPress 的 wpcf7_form_tag 过滤器来实现这一功能,从而在 Contact Form 7 表单中动态填充 Referer 信息,为数据追踪和客户来源分析提供支持。
在网站开发中,追踪用户来源对于市场营销和数据分析至关重要。 有时,我们希望仅在用户通过特定渠道(例如包含 "partner" 关键词的推广链接)访问时,才记录其来源信息。本文将详细介绍如何使用 PHP 和 WordPress 的 Contact Form 7 插件,实现有条件地获取和使用原始 URL 来源(Referer)的功能。
1. 存储 Referer 和 Landing Page 到 Session
以下代码片段用于在用户首次访问时,将 Referer 和 Landing Page 存储到 PHP Session 中。
function wpshore_set_session_values()
{
if (!session_id())
{
session_start();
}
if (!isset($_SESSION['OriginalRef']))
{
$_SESSION['OriginalRef'] = $_SERVER['HTTP_REFERER'];
}
if (!isset($_SESSION['LandingPage']))
{
$_SESSION['LandingPage'] = $_SERVER["REQUEST_URI"];
}
}
add_action('init', 'wpshore_set_session_values');代码解释:
2. 使用 Contact Form 7 过滤器动态填充表单
以下代码使用 wpcf7_form_tag 过滤器,根据条件判断,动态填充 Contact Form 7 表单中的 referer-page3 字段。
function getRefererPage3( $form_tag ){
if (strpos($_SESSION['LandingPage'], 'partner') !== false) {
if ( $form_tag['name'] == 'referer-page3' ) {
$form_tag['values'][] = $_SESSION['LandingPage'];
}
}
return $form_tag;
}
if ( !is_admin() ) {
add_filter( 'wpcf7_form_tag', 'getRefererPage3' );
}代码解释:
3. 在 Contact Form 7 表单中使用该字段
在 Contact Form 7 表单中,添加一个名称为 referer-page3 的隐藏字段。例如:
[hidden referer-page3]
注意事项:
总结
通过以上步骤,我们成功实现了在满足特定条件时,获取并使用原始 URL 来源的功能。 这种方法可以用于追踪用户来源,分析推广效果,以及为用户提供个性化的服务。 通过灵活运用 PHP Session 和 WordPress 的 wpcf7_form_tag 过滤器,我们可以轻松地实现各种复杂的表单功能。
以上就是根据条件获取原始 URL 来源(Referer)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号