You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为未登录用户生成Gravity Form提交时的Save and Continue链接并跳转登录

解决方案

实现思路

通过拦截未登录用户在第6步的提交动作,调用Gravity Form原生的保存草稿接口生成带gf_token的恢复链接,将该链接作为登录后的跳转目标传入登录页,用户登录成功后直接跳转至该恢复链接,Gravity Form会自动根据token恢复之前的填写内容和当前步骤(第6步),同时通过过滤器禁用原生的保存成功提示页,直接跳转登录页。

前置操作

首先在Gravity Form表单后台的「设置-表单布局」中,勾选启用「保存并稍后继续」功能。

代码实现

所有PHP代码可添加到主题functions.php文件或自定义功能插件中,JS代码添加到表单所在页面的自定义脚本区域。

1. 后端配置代码

// 向前端传递用户登录状态和表单配置
add_action('wp_enqueue_scripts', 'custom_gf_localize_script');
function custom_gf_localize_script() {
    wp_localize_script('jquery', 'customGFConfig', [
        'is_logged_in' => is_user_logged_in(),
        'target_form_id' => 123 // 替换为你的多步骤表单实际ID
    ]);
}

// 禁用原生保存成功提示页,跳转至登录页
add_filter('gform_save_continue_redirect', 'custom_gf_save_redirect', 10, 4);
function custom_gf_save_redirect($redirect_url, $form, $entry, $token) {
    // 仅对目标表单、未登录用户生效
    if($form['id'] == customGFConfig.target_form_id && !is_user_logged_in()) {
        // 拼接表单恢复链接作为登录后跳转目标
        $resume_url = get_permalink().'/?gf_token='.$token;
        return wp_login_url($resume_url);
    }
    return $redirect_url;
}

// 适配登录后跳转逻辑
add_filter('login_redirect', 'custom_gf_login_redirect', 10, 3);
function custom_gf_login_redirect($redirect_to, $request, $user) {
    // 恢复链接包含gf_token直接放行
    if(str_contains($redirect_to, 'gf_token')) {
        return $redirect_to;
    }
    return $redirect_to;
}

2. 前端交互代码

jQuery(document).ready(function($) {
    // 已登录用户/非目标表单不执行逻辑
    if(customGFConfig.is_logged_in || !$('#gform_'+customGFConfig.target_form_id).length) return;

    // 监听表单提交事件
    $('#gform_'+customGFConfig.target_form_id).on('submit', function(e) {
        // 仅在第6步提交时触发逻辑
        const currentPage = $('.gform_page_current').data('page');
        if(currentPage !== 6) return;

        // 阻止默认提交,先调用原生保存草稿逻辑
        e.preventDefault();
        window.gform.applyFilters('gform_save_continue', true, $(this));
    });
});

注意事项

  • 请将代码中123替换为你的多步骤表单实际ID
  • 如果你使用自定义登录页,请将代码中的wp_login_url替换为你自定义登录页地址,同时确保该登录页支持redirect_to参数的跳转逻辑
  • 测试时可使用浏览器隐身窗口模拟未登录用户,验证从第6步提交、跳转登录、登录后恢复表单的全流程是否正常

内容的提问来源于stack exchange,提问作者Parthavi Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:24:03