javascript Contact Form 7和Contact Form 7成功页面重定向插件冲突

0wi1tuuw  于 2023-04-10  发布在  Java
关注(0)|答案(4)|浏览(157)

我已经实现了这两个插件:

  • 接触形式7,以及
  • 联系表单7成功页面重定向.

这些插件有冲突。
首先,客户端验证不起作用。
第二,成功后不会重定向到成功页面。

mgdq6dx1

mgdq6dx11#

如果你只是想在成功的消息后重定向用户,那么更好的方法是使用javascript钩子。
删除成功页面重定向插件。

on_sent_ok: "location = 'http://example.com/';"

只需转到联系人表单7中的“附加设置”选项卡,并粘贴此内容,不带任何前导空格,将您的成功页面URL替换为example.com。

btqmn9zl

btqmn9zl2#

要进行客户端验证,请将这些行放在footer.php中

<script type='text/javascript' src='/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=3.5.2'></script>


<script type='text/javascript' src='/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.40.0-2013.08.13'></script>


<script type='text/javascript'>

Copyright © 2018 - 2019 www.wpcf7.com All Rights Reserved.粤ICP备17047777号-1]]〉
现在在你的cf7-success-page-redirects.php是在插件目录.
更改此功能

function cf7_success_page_form_submitted( $contact_form ) {
$contact_form_id = $contact_form->id();

// Send us to a success page, if there is one
$success_page = get_post_meta( $contact_form_id, '_cf7_success_page_key', true );
if ( !empty($success_page) ) {
    $items = array();
    $items['mailSent'] = true;
    $items['redirectLink'] =get_permalink( $success_page );
    echo wp_json_encode( $items );
    die();
}

}
现在在你的联系表单7目录中的插件找到js文件夹,并寻找script.php和替换这一堆代码.

else if (1 == data.mailSent) {
        $responseOutput.addClass('wpcf7-mail-sent-ok');
        $form.addClass('sent');

        if (data.onSentOk) {
            $.each(data.onSentOk, function(i, n) { eval(n) });
        }

        $(data.into).trigger('wpcf7:mailsent');
        $(data.into).trigger('mailsent.wpcf7'); // deprecated
        location.assign(data.redirectLink);


    }

我已经修复了这个在我的网站上为客户希望这将有助于有人在未来。

e0bqpujr

e0bqpujr3#

functions.php中使用下面的代码(位于themes -〉themeName文件夹中)。
把这个放在文件的最后。

add_action( 'wp_footer', 'mycustom_wp_footer' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( e ) {
    var str = window.location.href;
    if( str.includes("flp") ){
        window.location.href = "http://www.WebsiteName.com/facebook-thank-you";
    } else if( str.includes("glp") ){
        window.location.href = "http://www.WebsiteName.com/google-thank-you";
    }
}, false );
</script>
<?php
}

工作完美..

0tdrvxhp

0tdrvxhp4#

如果您希望在成功提交消息后重定向用户,则更有效的方法是使用JavaScript钩子。
您可以删除成功页面重定向插件,并使用以下代码:

on_sent_ok: "location = 'http://example.com/';"

只需导航到Contact Form 7中的“Additional Settings”选项卡,然后粘贴此代码(不带任何前导空格)。请务必将“example.com”替换为所需的成功页面URL。
如果您想了解更多关于这些设置,只需查看联系表格7官方文档在这里.
然而,如果你需要一个非代码的解决方案,像“重定向并在新标签中打开”,“条件重定向”,“重定向到whatsapp”或“传递值”,那么我建议尝试像这样的联系表单7插件one

相关问题