El ajuste adicional on_sent_ok
se utiliza para asignar un código JavaScript que se ejecutará cuando se complete el envío de un formulario y el correo se haya enviado correctamente. A menudo se utiliza con el fin de hacer un seguimiento de los envíos de formularios con servicios de análisis web o redirigir a otra página después del envío de un formulario.
Los ajustes on_sent_ok
, y su ajuste hermano on_submit
, están obsoletos y su eliminación está programada para finales de 2017. No significa que usar estos ajustes no sean seguro, pero es posible que activarlos aumente el riesgo en caso de que haya vulnerabilidades en este u otros plugins de tu sitio. Es hora de reemplazarlos por una alternativa más segura.
Actualización: on_sent_ok
y on_submit
han sido oficialmente eliminados en Contact Form 7 v5.0.
La alternativa recomendada a on_sent_ok
es utilizar eventos DOM. Programar con eventos DOM tiene varias ventajas sobre usar on_sent_ok
. Para obtener detalles de los eventos DOM personalizados de Contact Form 7, consulta la documentación.
A continuación, explicaré con algunos ejemplos cómo puedes reemplazar tus ajustes de on_sent_ok
.
Reemplazando on_sent_ok
con eventos DOM
Supongamos que actualmente tienes la siguiente línea de ajuste en la pestaña Configuración adicional:
on_sent_ok: "ga( 'send', 'event', 'Contact Form', 'submit' );"
Este ajuste le indica a Contact Form 7 que ejecute la función ga()
(seguimiento de Google Analytics) cuando se completa el envío de un formulario y el correo se envía correctamente.
Para reemplazarlo con un código alternativo, usando eventos DOM, primero localiza el archivo llamado functions.php
en el directorio de tu tema activo. En segundo lugar, añade el siguiente código en la parte inferior de dicho archivo:
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
ga( 'send', 'event', 'Contact Form', 'submit' );
}, false );
</script>
<?php
}
Luego, elimina la línea on_sent_ok
de la pestaña «Ajustes adicionales» y guarda los cambios del formulario de contacto.
¡Eso es todo!
Apuntando a un formulario de contacto específico
Si tienes varios formularios de contacto y quieres ejecutar la función solo en un formulario específico, haz una comprobación del ID del formulario, como se muestra a continuación:
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
if ( '123' == event.detail.contactFormId ) {
ga( 'send', 'event', 'Contact Form', 'submit' );
}
}, false );
</script>
<?php
}
En este caso, la función ga()
solo se ejecutará si el ID del formulario de contacto (event.detail.contactFormId
) es 123
.
Puedes encontrar el ID de un formulario de contacto, viendo el atributo id
en el shortcode contact-form-7. Por ejemplo, para el shortcode mostrado a continuación:
[contact-form-7 id="1234" title="Formulario de contacto 1"]
El ID del formulario de contacto sería 1234
.