¿Tienes un Hotel o Alojamientos y necesitas calcular el número de noches entre dos fechas con Gravity Forms?
¿Vas a realizar un evento y necesitas calcular el número de días entre dos fechas con Gravity Forms?
¿El producto que vendes depende del cálculo del número de días entre dos fechas y usas el formulario Gravity Forms para wordpress?
Pues estas de enhorabuena, porque aunque el plugin para wordpress Gravity Forms no realice el cálculo de días o noches entre dos fechas por defecto, hoy te mostrare como se puede hacer esta función tan necesaria para personas que usan este formulario de contacto tan famoso en la captación de información básica para una reserva de hotel y no quieren usar un plugin de booking, pero quieres ese campo calculado entre dos fechas para poder cobrar una tarifa por noche. También existe la posibilidad de poder calcular los días que hay entre dos fechas para un evento y necesitamos cobrar un importe según esos días.
Primero debemos saber que no es lo mismo calcular los días entre dos fechas que las noches entre estos dos campos, ya que el cálculo de noches es siempre un día menos que cuando contamos días enteros. Dejando claro este concepto nos ponemos al lio!!!
Pero antes, os dejo un ejemplo de cada uno para que vayamos familiarizandonos con el resultado que queremos obtener en estos 2 casos que nos ocupan.
Cálculo de Noches entre dos Fechas con Gravity Forms
Cálculo de Dias entre dos Fechas con Gravity Forms
El resultado anterior se logra gracias a un fragmento de código que realiza estos cálculos. Este se divide en dos partes, el algoritmo; que calcula dicho campo numérico entero (número de días o noches) que necesitamos para realizar el proceso de multiplicación por el precio que vamos a cobrar al cálculo de días o noches entre 2 fechas. Y la configuración; que tenemos que completar y cambiar dependiendo de los valores variables que genera cada formulario de gravity forms y que necesitamos para calcular el número de días o noches entre dos fechas. !Tranquilo! ahora lo explicaré con ejemplos…
¿Dónde copio el fragmento de código para calcular el número de días o noches entre dos fechas?
Este fragmento lo pegaremos en nuestro archivo functions.php que por lo general se encuentra en la ruta /home/instalacion/public_html/wp-content/themes/nombredeltheme/functions.php de nuestra instalación de wordpress.
Ok, ¿y ahora cómo configuro el fragmento de configuración?
Esta parte es donde tenemos que tener más cuidado, ya que depende el correcto funcionamiento para calcular el número de días o noches entre dos fechas.
Os voy a mostrar el código!
Ahora vamos a desglzoarlo y veremos uno a uno los campos que tenemos que cambiar para la configuración.
- El primer campo es ‘form_id’ => A, que nos pide el número de identificación del formulario que reemplazamos en A
¿Dónde puedo encontrar este id?
Nos dirigimos al menú Formularios que encontraremos en el panel de administración de wordpress, aquí nos indica el número que genera de forma automática y consecutiva el plugin gravity forms.

En la imagen apreciamos resaltados 2 número, el 3 y el 2 estos sería los números que tendríamos que cambiar en nuestra variable A dependiendo del formulario que necesitemos calcular. En este ejemplo vamos a trabajar con el calculo del numero de noches entre dos fechas, el id 2 es el resultado. Quedaría de esta manera;‘form_id’ => 2 - En la linea de código ‘start_field_id’ => B, tenemos que poner el id automático que genera gravity form para ese campo en la edición del formulario.
¿Dónde puedo encontrar este id?
Nos dirigimos al menu Formularios–>Editar(Pulsar en editar del formulario a configurar) que encontraremos en el panel de administración de wordpress y buscamos el campo de la fecha de entrada o inicial del evento.

En la imagen apreciamos resaltado el número 1, este sería el número que tendríamos que cambiar por nuestra variable B dependiendo del formulario que que necesitemos calcular, como en este ejemplo estamos trabajando con el calculo del numero de noches entre dos fechas sería el ID de campo 1, el resultado quedaría de esta manera; ‘start_field_id’ => 1 - En la linea de código ‘end_field_id’ => C, tenemos que poner el id automático que genera gravity form para ese campo en la edición del formulario.
¿Dónde puedo encontrar este id?
Nos dirigimos al menu Formularios–>Editar(Pulsar en editar del formulario a configurar) que encontraremos en el panel de administración de wordpress y buscamos el campo de la fecha de salida o fin del evento.

En la imagen apreciamos resaltado el número 2, este sería el número que tendríamos que cambiar por nuestra variable C dependiendo del formulario que necesitemos calcular. Como en este ejemplo estamos trabajando con el cálculo del número de noches entre dos fechas sería el ID de campo 2. El resultado quedaría de esta manera; ‘end_field_id’ => 2 - En la linea de código »count_field_id’ => D, tenemos que poner el id automático que genera gravity form para ese campo en la edición del formulario.
¿Dónde puedo encontrar este id?
Nos dirigimos al menú Formularios–>Editar(Pulsar en editar del formulario a configurar) que encontraremos en el panel de administración de wordpress y buscamos el campo de cálculo que tenemos que haber creado para las noches o días a multiplicar por el precio.

En la imagen apreciamos resaltado el número 4, este sería el número que tendríamos que cambiar por nuestra variable D dependiendo del formulario que necesitemos calcular. Como en este ejemplo estamos trabajando con el calculo del numero de noches entre dos fechas sería el ID de campo 4. El resultado quedaría de esta manera; ‘count_field_id’ => 4 - Y por último y no menos importante, la línea de código ‘include_end_date’ => false/true, que es la que define cómo queremos trabajar, si calculando las noches o el número de días.
Ponemos:
– false: si necesitamos calcular el numero de noches
– true: si necesitamos calcular el número completos de días que hay entre dos fechas
Pues ya lo tenemos, ahora gravity forms tambien trabaja como un simple plugin de booking donde nos sirve para calcular el numero de días o noches entre dos fechas.
Y te preguntaras; ¿Dónde esta el fragmento de código que necesito para calcular el numero de días o noches entre dos fechas?
Pues si estas interesado en que te lo envíe de forma gratuita, sólo tienes que solicitarlo desde CTA que veras a continuación y en breve recibirás un correo donde te envío el archivo con el fragmento de código completo.
No olvides que si tienes dudas sobre este tutorial o sobre la creación de un formulario para calcular el numero de días o noches entre dos fechas, envíame la consulta desde los comentarios de este post y te contestare encantado.
¿Te he ayudado a solucionar tu problema?
¿Te gustaría ayudarme a seguir con mi trabajo?
Si pulsas en el anuncio que verás abajo, aunque no te interese,estás aportando con aproximadamente 0,05€ que me pagará Google. A ti no te costará nada realizar ese pequeño clic. Parece poco pero me ayuda mucho a poder seguir escribiendo artículos de buena calidad y a pagar mis cosillas…¡¡¡Muchas Gracias!!!

buenos días, me ha parecido muy interesante el artículo y muy instructivo. Gracias por compartirlo con la comunidad. Me gustaría saber si es posible adaptar el código a otro contexto aunque muy parecido. Se trata de fechas como variables, usar medidas. Me explico: el usuario introduce unas medidas en cm y, en base a si esas medidas están dentro de unos parámetros previamente establecidos den como resultado un precio determinado (no calculado, sino también ya establecido de entre tres o cuatro precios posibles).
Muchas gracias
Lo siento Miguel, no sabría decirte.
Gran Blog, Como puedo aplicar este código al Plugin Contact Form 7 ?
Hola Nury, no puedes, es exclusivo para Gravity Forms.
hola me gustaria saber si al codigo le hace falta algo he copiado el código que muestras después de cambiar los respectivos ID de cada campo y no me deje guardar el function.php
Hola me gustaria saber si hace falta agregar algo en el codigo, ya qye me da error, dice que no se encuentra «MADDayCount», lo copie tal cual en mi function.php cambiando los ID correspondientes, gracias de antemano
Buenas, quisiera saber que codigo haria falta para que la seleccion entre fechas sea solo por mensualidades completas. y no por dias
y que haga el calculo de dias como anteriormente ya que habria un precio asignado por dia
Hola, agregué el código, pero por alguna razón la respuesta me sale en 0
Fantástico!!