No funciona la redirección en Contact Form 7 de WordPress

No funciona la redirección en Contact Form 7 de WordPress

En relativamente poco tiempo Contact Form 7 se ha convertido en el plugin para crear formularios más usado en WordPress. Personalmente reconozco que había estado usando otros con anterioridad hasta que lo descubrí hace unos años y desde entonces casi siempre suelo emplearlo en mis proyectos de desarrollo web.

Si has llegado a este artículo, doy por supuesto que ya lo conoces y sabes que se le pueden añadir algunas opciones extras mediante una serie de comandos en cada formulario. Así que iré directamente al grano y me saltaré la introducción del mismo.

Con la función on_sent_ok podemos indicarle al formulario que haga una acción determinada una vez se ha enviado. Esto es algo que se ha venido usando para redireccionar a una página de agradecimiento al usuario, entre otras cosas para hacer un seguimiento en estadísticas. Sin embargo desde comienzos de 2018 ha dejado de funcionar porque el desarrollador del plugin ha decidido descontinuarla por motivos de seguridad.

No obstante, y aunque el propio desarrollador desaconseja que hagamos redirecciones, podemos hacer uso de JavaScript para sustituir esta funcionalidad. Para ello podemos irnos a nuestro archivo functions.php o al que contenga nuestros scripts y añadir una nueva función de PHP que contenga un código para llevar a cabo nuestro objetivo. Podéis usar algo similar a lo siguiente:

add_action( 'wp_footer', 'script_redireccion' );

function script_redireccion() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
    location = 'http://www.paginaderedireccion.com/';
}, false );
</script>
<?php
}

Aquí puedes sustituir la dirección web de ejemplo por tu página de destino y listo. Recuerda, eso sí, que el ejemplo anterior cierra y abre PHP dejando en medio el JavaScript que redirecciona, así que deberás tenerlo en cuenta donde lo vayas a usar.

Puedes encontrar más información sobre por qué la función on_sent_ok ha quedado obsoleta desde la versión 5 en el artículo publicado por el autor sobre el tema.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *