Hay un monton de plugins de formulario de contacto para wordpress. Desde lo mas completos y llenos de caracteristicas hasta los mas simples. Pero siendo un maniatico de la optimizacion se me ocurrio que podria hacer uno sin usar un plugin.
Las ventajas de usar un formulario de contacto sin plugin son:
- Mayor control y personalizacion sobre el funcionamiento
- Mayor velocidad y optimizacion
- Posibilidad de agregar caracteristicas unicas
Me interesaba principalmente el tema de la velocidad de carga de la web. Me di cuenta que usando Contact Form 7, el plugin mas famoso para esta tarea, siempre me cargaba un archivo javascript y uno css en cada pagina de mi blog. No solo en la pagina de contacto sino en cada post, cada categoria, cada tag, etc etc. Eso no me gusto nada y comence mi tarea de buscar una forma de hacerlo sin que me pase eso. Despues de todo…para que necesito tantas opciones si lo unico que quiero es un simple formulario de contacto?
Lo encontre en [trevodavis](http://trevordavis.net/blog/wordpress-jquery-contact- form-without-a-plugin)(en ingles) y lo simplifique. Porque tampoco necesitaba algo que use jQuery y Ajax. Simple PHP y HTML me bastaban. Paso a explicarles como se hace.
Basicamente lo que vamos a hacer es un template de pagina para wordpress. Y este es el esquema basico que tendra:
[php] SI (recibo formulario) Verifico captcha Valido datos SI (no hay errores) envio email
Template de pagina
SI (se envio el mail) Muestro msj + algo extra SINO Muestro formulario [/php]
Voy a explicar paso a paso pero aclaro que como vamos a un template de pagina cada uno debera adaptarlo a su blog. Aunque igual es una tarea facil.
Lo primero que lleva el archivo es la cabecera para indicar que es un template:
[php]
[/html]
Ya casi terminamos. Ahora viene la parte de mostrar un mensaje si el mail se envio o mostrar el formulario. En cada input se muestra el valor enviado si es que el envio falla, esto para que el visitante no tenga que llenar de nuevo los campos. Tambien se muestra debajo de cada input el error para indicar al visitante donde cometio un error.
[php]
Gracias por comunicarte,
Te email sera atendido y respondido a la brevedad. Hubo un error enviando el formulario.
Tu mensaje aqui
Deja este campo vacio para demostrar que eres humano
[/php]
Por ultimo solo mostramos lo que queda del template de pagina. Que de nuevo dependera de la estructura de su theme. El mio y asi:
[php]
[/php]
Suben el archivo a la carpeta de su theme. Ahora solo crean una pagina y eligen el template que acabamos de crear. Deberia funcionar sin mayores problemas.
Como mejorar el formulario de contacto
Agregar CSS. Pueden usar CSS para mejorar el aspecto del formulario. Seguramente su theme algun estilo para ellos, lo mejor seria usar esos para no tener que agregar aun mas codigo.
Mostrar mas informacion. Cuando Muestran el mensaje de ‘exito’ podrian aprovechar y mostrar algo mas para mantener a la visita dando vueltas por el blog. Por ejemplo pueden aprovechar y mostrar algunos post destacados o los mas comentados. Pueden usar algo del codigo que les mostre cuando hice el post de crear [pagina de archivos para wordpress](https://paraisolinux.com/como- hacer-una-pagina-de-archivos-por-categoria-en-wordpress/ “Pagina de archivos por categoria para wordpress”).
Si quieren una prueba pueden usar el formulario de contacto de este blog. El enlace esta en la parte superior derecha.