WORDPRESS : Solve problem with ” Contact form 7 “, “Additional Settings” update and WPML

September 18th, 2017

From some months, if you had set additional settings, on “additional settings” panel in ” Contact Form 7 ” , when you update the plugin, had an error:

This epends because the Javascript code for some of this additional settings is deprecated. ( if you don’t see any error notification , never mind, the actions you using aren’t deprecated ).

First of all remove the code in ” Additional Settings ” tab.
Second, open your function file from your theme and paste this code ( in this example use code for redirect on thank you page after submit ).

if you have only one form:


add_action( 'wp_footer', 'mycustom_wp_redirect' );
 
 function mycustom_wp_redirect() {
 ?>
 <script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {


    location = 'http://yourdomain.it/tanks-page-contatti/';

  
    }, false );
 </script>
<?php
}

If you want targeting a specific form:

add_action( 'wp_footer', 'mycustom_wp_redirect' );
 
 function mycustom_wp_redirect() {
 ?>
 <script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {



if ( '133' == event.detail.contactFormId ) {

    location = 'http://yourdomain.it/tanks-page-contatti/';

}
  
    }, false );
 </script>
<?php
}

If you have a simple form , without multi language ( in my case language are managed with WPML )That’s all.

If you try your form, you can see that work’s fine ( as before ).

If you use “WPML”, there’s something more to do.

Open your function.php, and change the before code :


add_action( 'wp_footer', 'mycustom_wp_redirect' );
 
 function mycustom_wp_redirect() {
 ?>
 <script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {



if ( '133' == event.detail.contactFormId ) {

    location = 'http://yourdomain.it/tanks-page-contatti/';

}else if ( '274' == event.detail.contactFormId ) {

     location = 'http://yourdomain.it/en/thanks-for-contacting-us/';

}else if ( '134' == event.detail.contactFormId ) {

      location = 'http://yourdomain.it/grazie-per-esserti-iscritto/';

}else if ( '272' == event.detail.contactFormId ) {

      location = 'http://yourdomain.it/en/thank-you-for-signing-up/';

}
  
    }, false );
 </script>
<?php
}

With this method you can add different thank you page for different language.

That’s all

Comments are closed.