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

WordPress中Contact Form7非指定表单提交重定向异常问题

问题分析

你的代码核心问题是表单ID的判断逻辑错误:
Contact Form7 的 wpcf7mailsent 事件中,event.detail.contactFormId 返回的是表单的纯数字ID(字符串或数字类型,比如 "370" 或 370),而你代码里用的是带前缀的 'contact-370' 做比较。

这就导致:哪怕是ID为370的表单,'contact-370' !== event.detail.contactFormId 的结果永远是 true,所以跳转逻辑会被触发,出现错误重定向的问题。

修正后的代码

把判断条件里的ID改成纯数字形式即可,同时优化弹出窗口的写法避免被浏览器拦截:

document.addEventListener('wpcf7mailsent', function (event) {
    // 用纯数字ID做判断,匹配你的contact-370表单的实际ID(即370)
    if ('370' !== event.detail.contactFormId) {
        // 用创建a标签模拟点击的方式,避免浏览器拦截新窗口
        const redirectLink = document.createElement('a');
        redirectLink.href = 'https://mycoolurl.com/';
        redirectLink.target = '_blank';
        document.body.appendChild(redirectLink);
        redirectLink.click();
        document.body.removeChild(redirectLink);
    }
}, false);
其他可选方案

如果你不想写JS,也可以给需要跳转的表单单独添加标识:

  1. 给目标表单添加自定义CSS类(比如 redirect-after-submit)
  2. 修改事件监听逻辑,只针对带该类的表单触发跳转:
document.addEventListener('wpcf7mailsent', function (event) {
    const formElement = document.querySelector(`[data-id="${event.detail.contactFormId}"]`);
    if (formElement.classList.contains('redirect-after-submit')) {
        const redirectLink = document.createElement('a');
        redirectLink.href = 'https://mycoolurl.com/';
        redirectLink.target = '_blank';
        document.body.appendChild(redirectLink);
        redirectLink.click();
        document.body.removeChild(redirectLink);
    }
}, false);

这种方式更灵活,后续新增需要跳转的表单,只需要添加CSS类即可,不用修改JS代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:22:24