联系表7和联系表7成功页面重定向插件冲突



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

  • 联系表7和
  • 联系表7成功页面重定向。

这些插件是冲突。

首先,客户端验证不起作用。

其次,成功并没有重定向到成功页面。

如果您只想在成功消息后重定向用户,那么更好的方法就是使用JavaScript钩子。

删除成功页面重定向插件。

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

只需转到"联系表7"中的其他设置选项卡,并在没有任何领先空间的情况下将其粘贴,请用example.com替换您的成功页面。

要在客户端验证上工作,请将这些行放入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'>

请单独复制语法是cdata。> var _wpcf7 = {" loaderUrl":"/wp-content/plugins/contact-form-7/images/ajax-loader.gif"," sending":" sending .." ..。"}; ]]>

现在在插件目录中的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);

    } 

我已经在我的网站上修复了这一点,希望这将在以后对某人有所帮助。

functions.php 中使用以下代码(位于主题 -> 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
}

工作完美。

如果您希望在成功提交消息时重定向用户,则更有效的方法是使用JavaScript钩子。

您可以删除成功页面重定向插件,然后使用以下代码:

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

只需导航到联系表7中的"其他设置"选项卡并粘贴此代码,而无需任何领先空间。请务必替换"示例"。在您想要的成功页面网址。

如果您想了解有关这些设置的更多信息,只需在此处检查联系表7官方文档。

但是,如果您需要具有更高级自定义的非代码解决方案,例如'redirect&amp;在新标签中打开,"有条件重定向","重定向到WhatsApp"或" Pass值",然后我建议尝试使用触点7插件。

最新更新