Php 使CF7重定向到特定表单而不是页面

Php 使CF7重定向到特定表单而不是页面,php,wordpress,forms,plugins,contact-form-7,Php,Wordpress,Forms,Plugins,Contact Form 7,在我们的网站上成功提交CF7表单后,客户将被重定向到感谢页面。但我们只希望他们在提交具体表格时进入感谢页面 到目前为止,我只能让代码为特定页面而不是特定表单执行它。是否有可能重写或以某种方式更改它 add_action('wp_footer','cf7_specific_form_redirect'); 函数cf7_特定_表单_重定向() { ?> document.addEventListener('wpcf7mailsent',函数(事件){ (“是的工作”); 如果(154==event

在我们的网站上成功提交CF7表单后,客户将被重定向到感谢页面。但我们只希望他们在提交具体表格时进入感谢页面

到目前为止,我只能让代码为特定页面而不是特定表单执行它。是否有可能重写或以某种方式更改它

add_action('wp_footer','cf7_specific_form_redirect');
函数cf7_特定_表单_重定向()
{
?>
document.addEventListener('wpcf7mailsent',函数(事件){
(“是的工作”);
如果(154==event.detail.contactFormId){//将表格947中的sumissions发送到第一个感谢页面
地点:https://www.example.com/thank-you-1/';
}else if(155==event.detail.contactFormId){//将表单1070中的提交内容发送到第二个感谢页面
地点:https://www.example.com/thank-you-2/';
}else if(156==event.detail.contactFormId){//将表单1070中的提交内容发送到第二个感谢页面
地点:https://www.example.com/thank-you-3/';
}
},假);

您需要为每个要重定向的if条件指定id

我建议您为每个表单重定向特定的表单ID。 只需将154替换为短代码中所写的表单ID即可

例如:
[contact-form-7 id=“154”title=“contact-form 1”]

代码经过测试,使用最新的CF7运行良好

add_action('wp_footer', 'cf7_specific_form_redirect');

function cf7_specific_form_redirect()
{
    ?>
    <script type="text/javascript">
        document.addEventListener('wpcf7mailsent', function (event) {
            if (154 === event.detail.contactFormId) { // Sends sumissions on form 947 to the first thank you page
                location = 'https://www.example.com/thank-you-1/';
            } else if (155 === event.detail.contactFormId) { // Sends submissions on form 1070 to the second thank you page
                location = 'https://www.example.com/thank-you-2/';
            } else if (156 === event.detail.contactFormId) { // Sends submissions on form 1070 to the second thank you page
                location = 'https://www.example.com/thank-you-3/';
            }
        }, false);
    </script>
    <?php
}
add_action('wp_footer','cf7_specific_form_redirect');
函数cf7_特定_表单_重定向()
{
?>
document.addEventListener('wpcf7mailsent',函数(事件){
如果(154==event.detail.contactFormId){//将表格947中的sumissions发送到第一个感谢页面
地点:https://www.example.com/thank-you-1/';
}else if(155==event.detail.contactFormId){//将表单1070中的提交内容发送到第二个感谢页面
地点:https://www.example.com/thank-you-2/';
}else if(156==event.detail.contactFormId){//将表单1070中的提交内容发送到第二个感谢页面
地点:https://www.example.com/thank-you-3/';
}
},假);

是否有任何重定向或只在同一页面上显示感谢消息?是否使用任何外部插件进行页面重定向?我使用CF7。我使用上述PHP进行重定向。如果表单位于代码中的某个页面上,它会将您发送到页面/tak,即感谢页面。但我想更改代码,以便它发送特定的消息表单到页面/tak,而不是特定页面。我在一些页面上有几个表单,但并非所有表单都需要一个感谢页面。没有使用外部插件。CF7发送表单和上面的PHP重定向。感谢消息不在同一页面上,而是重定向。您好!这正是我想要的。但是上面的代码不起作用。我将其添加到了functions.php并将ID更改为我的CF7 ID,但在填写表单后,什么也没有发生。没有重定向?我已经测试了此代码。它工作正常,删除
wpcf7mailsent
的所有以前的代码并添加到上面。你好,诺曼。我已经在两个网站上测试了它,但它似乎不起作用。我已经将ID更改为我的ID和URL,但没有当您单击时会出现ng。它进入functions.php正确吗?还有什么可能是错误?它应该出现在每个
functions.php
上,并具有相关的表单ID。我添加了您的确切代码,并为要重定向的表单编写了代码。但没有出现重定向。