Tengo un formulario en Contact Forms 7 para que mis clientes reciban una llamada en 30 minutos. Un chico nos construyó una API que hace el trabajo. Pero necesito agregar el número de teléfono automáticamente al final de la URL externa (no mi página de contacto ni la página de agradecimiento). Cuando se envía, el formulario se redirige a una "página de agradecimiento" y debe activar un javascript que establece el número de teléfono al final de la URL.
Soy nuevo en Javascript, pero probé este código de Prieston , pero realmente no sé lo que estoy haciendo. ¿Alguien puede ayudar?
También probé el CF7 a Webhook pero no funcionó.
Puede utilizar los eventos de Contact Form 7 .
Entonces, algo como esto se activará cuando se envíe el formulario.
document.addEventListener( 'wpcf7submit', function( event ) { const phone = document.getElementById('phone').value; // Your phone field id const external_url = `http://external/?phone=${phone}` // Your page after the form is submitted location.replace(external_url) // Load the page with added parameter }, false );Logramos hacerlo funcionar con Javascript/AJAX con el siguiente código.
var url = "https://www.urloftheAPI.com"; var xhr = new XMLHttpRequest(); xhr.open("POST", url); xhr.setRequestHeader("Content-Type", "application/json"); var data = `{ "phone": "[phone]", "id": "company's id in the system of the api" }`; xhr.onreadystatechange = function () { if (xhr.readyState === 4) { console.log(xhr.status); console.log(xhr.responseText); console.log(data); }}; xhr.send(data);El código se disparó con el complemento Redirection for Contact Form 7 de Qube One .
La redirección a una 'página de agradecimiento' se realizó con el mismo complemento.
Prueba este javascript:
document.addEventListener( 'wpcf7submit', function( event ) { var inputs = event.detail.inputs; for ( var i = 0; i < inputs.length; i++ ) { if ( 'phone' == inputs[i].name ) { var iframe = document.createElement('iframe'); iframe.setAttribute("src", "https://voice.com.br/sendMessage/"+inputs[i].value); iframe.style.display = "none"; document.body.appendChild(iframe); break; } } }, false );Eso crearía un iframe oculto que cargará la url. Entonces aún debería poder redirigir al usuario a la página de agradecimiento después.