【问题标题】:CF7: Redirect to another URL if submission errorCF7:如果提交错误,重定向到另一个 URL
【发布时间】:2018-11-12 07:29:18
【问题描述】:

我使用 WordPress 的 Contact Form 7 插件创建了一个表单。

我的表单如下所示:

<label> User Name*
    [text* your-name] </label>

<label> Email Adress*
    [email* your-email] </label>

[submit "Register"]

我可以通过本教程https://cfdbplugin.com/?page_id=904 检测是否有人尝试使用相同的电子邮件地址(已注册)

但是,在显示错误消息的同时,我怎样才能让页面在一段时间后将他重定向到另一个 URL?例如到 "/homesite/?para="

也许我需要用这段代码做点什么

if (is_already_submitted($formName, $fieldName, $_POST[$name])) {
        $result->invalidate($tag, $errorMessage);
    }
}
return $result;

但我不知道应该如何修改这些代码。请帮帮我。

【问题讨论】:

  • 为了清楚起见,我想将他们重定向到“欢迎回来”页面,这样他们的数据就不会再次存储到我的 MySQL 中。

标签: wordpress contact-form-7


【解决方案1】:

您可以使用 DOM 事件来做到这一点。 CF7 具有自定义 DOM 事件,可用于将用户重定向到其他页面。由于要在表单数据无效时进行重定向,因此需要使用wpcf7invalid 事件。

wpcf7invalid — 当 Ajax 表单提交成功完成时触发,但由于存在无效输入的字段而未发送邮件。

一个简单的例子:

function my_awesome_cf7_custom_events () { ?>
    <script type="text/javascript">
        document.addEventListener( 'wpcf7invalid', function( event ) {
            if ( 'FORM_ID' == event.detail.contactFormId ) {//<===replace FORM_ID with form id
                location.replace('https://your-new-url/');
            }
        }, false );
    </script>
<?php }
add_action( 'wp_footer', 'my_awesome_cf7_custom_events' );

将 FORM_ID 替换为您的表单 ID,并设置您的网址。

More about CF7 DOM events

【讨论】:

  • 感谢您的帮助,但我需要将查询参数 = your-name 带到下一个 URL 并且用户必须先填写该字段。有可能吗?
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多