Cómo mostrar la edad de un campo selector de fecha

Introducción

¿Quieres mostrar la edad de un campo selector de fecha en tu formulario? En esta concisa guía, le guiaremos a través de la creación de un formulario que recoge la fecha de nacimiento a través de un campo selector de fecha. Además, demostraremos cómo aprovechar JavaScript para calcular y mostrar sin esfuerzo la edad de la persona en otra sección del formulario. Sigamos con las instrucciones paso a paso.

Creación del formulario

Empecemos creando un nuevo formulario y añadiendo nuestros campos. Asegúrese de incluir al menos un campo Fecha.

cree su formulario y añada todos los campos, incluido al menos un campo de selección de fecha

Si necesita ayuda para crear su formulario, consulte esta documentación.

Añadir el campo HTML

Como nuestro objetivo final es presentar la edad una vez seleccionado el cumpleaños, vamos a añadir un HTML campo. Dentro de este campo, incrustaremos un span HTML vacío, al que asignaremos la clase "edad". Este span vacío servirá como marcador de posición, que mostrará la edad dinámicamente tan pronto como el campo selector de fecha capture la selección del usuario.
<span class="age"></span>

añadir un campo html y dentro de ese campo añadir un span HTML vacío con una clase de edad

Añadir el fragmento

Ahora es el momento de añadir el fragmento que unirá todo esto. Si necesitas ayuda sobre cómo y dónde añadir snippets a tu sitio, consulta esta útil guía.

/**
 * Calculate age based on date of birth date picker field
 *
 * @link https://wpforms.com/developers/how-to-display-the-age-from-a-date-picker-field/
 */
function wpf_dev_check_age() {
?>
 
<script>
    jQuery(function($) {
 
        // Update the 3535_9 to match the form and field ID 
        // of your form and date picker field
        window.wpforms_3535_9 = window.wpforms_3535_9 || {};
        window.wpforms_3535_9.datepicker = {
             
            mode: "single",
            onClose: function(selectedDates, dateStr, instance) {
				// Set the today date as the current date
 				var today = new Date();
				// Set the DOB as the selected date of birth from
				// the date picker field
				var DOB = selectedDates[0];
				// Get the age by subtracting today's date from
				// the selected date of birth
				var age = today.getTime() - DOB.getTime();
				// Add a string to the message that will appear
				// showing the age
				var message = 'Your age is ';
				// Calculate the date from the age into "years old" 
                age = Math.floor(age / (1000 * 60 * 60 * 24 * 365.25));
				// Assign the message and age into a variable
				var totalMessage = message.concat(age);
				// Display the message into the empty span of "age"
				// inside the HTML field
                jQuery('.age').text(totalMessage);
 
            }
 
        }
         
    });
</script>
 
<?php
}
 
add_action( 'wpforms_wp_footer', 'wpf_dev_check_age', 10 );

Este snippet tiene muchos comentarios dentro explicando cada paso. Pero buscará el ID del formulario 3535 y el ID del campo Fecha de 9 y cuando se seleccione esa fecha y se cierre la ventana emergente del selector de fecha, hará automáticamente el cálculo a partir de la fecha introducida, menos la fecha actual y formulará esta diferencia en años para mostrarla en nuestro span HTML vacío con una clase de edad.

A efectos de esta documentación, nuestro ID de formulario es 3535 y el ID de campo para el campo Fecha es 9. Tendrá que actualizar estos ID en el fragmento para que coincidan con sus propios ID de formulario y campo. Si necesita ayuda para encontrar sus ID, consulte esta documentación.

Y eso es todo lo que necesitas para calcular la edad a partir de un campo selector de fecha. ¿Quieres cambiar también la posición de la ventana emergente del selector de fecha? Echa un vistazo al tutorial sobre Cómo cambiar la posición de la ventana emergente del selector de fecha.

Referencia

Acción de referencia: wpforms_wp_footer