Gravity Forms嵌入calculator.php模板后提交无法跳转至/results问题
Gravity Forms自定义模板嵌入后提交不跳转问题解决方案
核心原因
你调用gravity_form()时传入的最后一个参数为True,该参数为AJAX提交开关,开启后表单不会触发整页提交跳转,会异步将请求返回的内容插入到表单所在容器。由于你是直接在calculator.php模板中调用函数,异步请求会拉取到整个页面的输出内容,因此出现返回整页甚至源码的问题。
修复方案
方案1(最简修复,无需额外配置)
关闭AJAX提交模式,将
gravity_form的最后一个参数改为false即可,修改后代码如下:<div class="modal-body"> <?php gravity_form(5, false, false, false, '', false); ?> </div>修改后表单走正常整页提交流程,会自动按后台配置跳转到预设的/results确认页。
方案2(需保留AJAX提交时使用)
如果你需要保留模态框内提交不刷新整页的交互,可保留AJAX参数为
True,同时做两处配置:- 进入Gravity Forms对应表单的后台设置,将「确认」类型设置为重定向,目标地址填写
/results - 在页面引入的JS文件中添加跳转钩子代码:
document.addEventListener('gform_confirmation_loaded', function(event) { // 匹配你当前的表单ID 5 if (event.detail.formId === 5) { window.location.href = '/results'; } });- 进入Gravity Forms对应表单的后台设置,将「确认」类型设置为重定向,目标地址填写
额外注意事项
如果站点启用了页面缓存插件,请将calculator.php页面加入缓存排除列表,避免表单提交路由被静态缓存拦截导致异常。
内容的提问来源于stack exchange,提问作者Rise
相关产品推荐
相关产品推荐

