Apuntar un formulario desde WordPress
Sin plugin. Un bloque HTML que postea a /f/{TOKEN}. El thank-you page se configura en el dashboard, no en el HTML.
El plugin nativo de WordPress está planificado. Mientras tanto, este método snippet funciona en cualquier theme y no depende de él.
a) Lo más simple: bloque HTML personalizado
Editor de bloques → HTML personalizado → pega esto. method="POST" directo al endpoint.
<form action="https://denorly.com/f/8f3b2c1a-9d4e-4f7a-b6c2-1e5a7d9c0b3f" method="POST">
<input type="text" name="nombre" placeholder="Nombre" required>
<input type="email" name="email" placeholder="Email" required>
<textarea name="mensaje" placeholder="Mensaje"></textarea>
<button type="submit">Enviar</button>
</form>
Submit nativo (no-AJAX): si el form tiene redirect_url, el navegador recibe un 302 al thank-you page. Si no, ve la respuesta JSON cruda.
⚠ El thank-you page se setea en el DASHBOARD
- Denorly no lee un campo oculto
_redirect. El endpoint solo usa elredirect_urlguardado en el formulario. Cualquier campo extra que mandes se guarda como dato de la submission, no cambia el destino. - Configúralo en Dashboard → formulario → Redirección. Ahí pones la URL de tu thank-you page de WordPress (p. ej.
https://tutienda.pe/gracias).
a.2) Versión AJAX (sin recargar)
Si quieres feedback inline, postea con fetch. Funciona en el mismo bloque HTML.
<form id="denorly-form">
<input type="text" name="nombre" placeholder="Nombre" required>
<input type="email" name="email" placeholder="Email" required>
<textarea name="mensaje" placeholder="Mensaje"></textarea>
<button type="submit">Enviar</button>
<p id="denorly-msg"></p>
</form>
<script>
document.getElementById("denorly-form").addEventListener("submit", async (e) => {
e.preventDefault();
const data = Object.fromEntries(new FormData(e.target));
const res = await fetch("https://denorly.com/f/8f3b2c1a-9d4e-4f7a-b6c2-1e5a7d9c0b3f", {
method: "POST",
headers: { "Content-Type": "application/json", "Accept": "application/json" },
body: JSON.stringify(data),
});
const json = await res.json();
const msg = document.getElementById("denorly-msg");
if (json.success) {
if (json.redirect_url) { window.location = json.redirect_url; return; }
msg.textContent = "¡Enviado!";
e.target.reset();
} else {
msg.textContent = json.error; // string único
}
});
</script>
b) ¿Ya usas CF7 / WPForms?
| Plugin | ¿Cambia el target del POST? | Cómo conectar a Denorly |
|---|---|---|
| Contact Form 7 | No (postea a sí mismo) | Usa un webhook desde el plugin/integración hacia tu propio relay, o reemplaza el form por el HTML de arriba. |
| WPForms | No (postea a sí mismo) | Su addon de webhooks puede reenviar al endpoint, pero el shape lo controla el plugin. Más limpio: form HTML directo. |
Honesto: estos plugins postean a su propio handler; no puedes cambiar el action a Denorly desde la UI. Si necesitas integrarlos, ve a Webhooks o reemplaza el form por el bloque HTML.
c) Libro de Reclamaciones en todo el sitio
Pega el widget en el footer del theme o en un widget HTML personalizado del área de widgets, así aparece en todas las páginas.
<script src="https://app.denorly.com/assets/libro-widget.js"
data-token="8f3b2c1a-9d4e-4f7a-b6c2-1e5a7d9c0b3f"
data-position="bottom-right"
data-color="#E8A817"
data-text="Libro de Reclamaciones"
data-mode="modal"
async></script>
Solo data-token es obligatorio. Tabla completa de atributos en Libro embed.
⚠ Gotchas WordPress
- Page builders (Elementor, Divi) a veces sanitizan o eliminan
<script>de los bloques HTML. Mete el widget vía el footer del theme o un plugin de "insertar código en header/footer". - Caché (WP Rocket, LiteSpeed): si editas el form y no ves cambios, purga la caché. El widget es estático así que no le afecta.
- Algunos plugins de formularios no permiten cambiar el target del POST: confírmalo antes de pelear con ellos; suele ser más rápido el bloque HTML directo.