设置cookie可能是最好的选择。如果访问者禁用了js,我认为最好使用php在http头中设置cookie。然而,似乎init Wordpress将允许一个cookie设置函数挂接到的最后一个可能的操作,但它触发得太早,条件标记无法工作,所以我求助于js。
我在中使用了条件标记functions.php 因此,只有当特定的登录页模板(即。page-5.php) 脚本将加载并执行。与使用原始JavaScript不同,我使用了js库cookie.js.
add_action(\'wp_enqueue_scripts\', \'this_enqueue_scripts\');
function this_enqueue_scripts() {
if ( is_page(5) || is_page(7) ) :
wp_enqueue_script(\'cookie-script\', plugins_url( \'js/cookie.min.js\', __FILE__ ), null, true);
endif;
}
add_action(\'wp_footer\', \'set_cookie_func\');
function set_cookie_func() {
$post = get_post($post_id);
if ( is_page(5) || is_page(7) ) : ?>
<script type="text/javascript">
var referral = <?php echo \'"\' . $post->post_name . \'"\'; ?>;
cookie.set( \'landing_page\', referral, {expires: 7} );
</script>
<?php endif;
}
在我的网站上,提供的推荐URL是应用程序表单URL-无论用户是立即完成表单还是单击一点左右,cookie都已设置,可以通过隐藏字段提供给管理员*请注意,此解决方案的最后一部分特定于重力表单插件。在GF中
add a hidden input field and pass a cookie through it. 在表单编辑器中,选中“允许动态填充字段”框,并将以下代码段添加到
functions.php. (替换筛选器名称中的“landing\\u page”,以匹配字段参数和cookie名称。)
add_filter( \'gform_field_value_landing_page\', \'populate_landing_page_field\' );
function populate_landing_page_field( $value ) {
return $_COOKIE[\'landing_page\'];
}