Tengo un formulario de Wix que está configurado para enviar un correo electrónico con los datos del formulario y solo muestra un mensaje de confirmación en la página. Me pidieron que agregara una segunda solicitud para enviar los mismos datos del formulario a un servidor diferente. Pude hacerlo enviando los datos al backend usando onWixFormSubmited()
export function wixForms1_wixFormSubmitted() { let data = { first_name: $w('#input5').value, last_name: $w('#input4').value, email: $w('#input3').value, } saveProspectToCRM(data) .then(function(response) { console.log('it was successfull'); console.log(response); }); } import {fetch} from 'wix-fetch'; export async function saveProspectToCRM(params) { const url = 'myurl'; let data = { //encoded data }; return fetch(url,{ method: 'post', body: data, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }).then(function(response) { if (response.status >= 200 && response.status < 300) { return response.text(); } else { throw new Error(response.statusText); } }); }Esto realmente funciona y el correo electrónico se envía y los datos se publican en mi otro servidor, pero tengo un segundo formulario de Wix con la única diferencia de que este se redirige a una página diferente después del envío en lugar de solo mostrar un mensaje. Y mi código no funciona con este segundo formulario. Intenté cambiar onWixFormSubmitted por onWixFormSubmit pero aún no funciona.
He leído en la documentación que onWixFormSubmit solo maneja operaciones sincrónicas y asumo que el primer formulario funciona porque el usuario no es redirigido a una página diferente. ¿Alguien podría decirme qué estoy haciendo mal o cuál sería el mejor enfoque para mantener la configuración del formulario (enviar los correos electrónicos) y ENVIAR los datos al servidor?
wixFormSubmitted() con función de retorno de redirección una vez que se envía. el resto del código se ignora.
Lo que debe hacer es volver al mensaje de éxito y ocultarlo.
para redirigir, siempre puedes usar wix-ubicación después de la respuesta de la API.
import wixLocation from 'wix-location'; // ... wixLocation.to("/about-me");