Hasta la versión 7.5 de Contact form 7, si queríamos redireccionar el formulario a una página de gracias o thank you page, podíamos utilizar un código personalizado dentro de la pestaña Ajustes adicionales.
Añadíamos algo así:
on_sent_ok: «location = ‘/nuestra-thankyoupage/’;»
Redirección a partir de la versión 7.5 de Contact form 7
Sin embargo, a partir de esta versión, la opción de on_sent_ok en Ajustes adiciona.es ha quedado obsoleta y es necesario sutituir por otra.
Desde Contact Form 7 aconsejan sutituir on_sent_ok por un DOM event dentro del archivo functions.php de nuestro tema.
on_sent_ok: "ga( 'send', 'event', 'Contact Form', 'submit' );"
Ejemplo de redirección a thank you page
Aquí tienes un ejemplo para una página con varios formularios:
add_action( 'wp_footer', 'mycustom_wp_footer' ); function mycustom_wp_footer() { ?> <script type="text/javascript"> document.addEventListener( 'wpcf7mailsent', function( event ) { if ( 'idform' == event.detail.contactFormId ) { // Sends sumissions on form idform to the first thank you page location = '/thank-you-page-1/'; } else if ( 'idform' == event.detail.contactFormId ) { // Sends submissions on form idform to the second thank you page location = '/thank-you-page-2/'; } else { // Sends submissions on all unaccounted for forms to the third thank you page location = '/thank-you-page-3/'; } }, false ); </script> <?php }
Este ejemplo contempla tres casos:
- Si tienes un solo caso, deja un if.
- Si tienes dos dejas if y el else if.
- Y si quieres redireccionar independientemente del formulario, utiliza else.
No te olvides de sustituir:
- idform por el id correspondiente
- /thank-you-page-1/, /thank-you-page-2/, /thank-you-page-3/, por tus páginas de gracias correspondientes.
Un comentario
Funciona correctamente!