En este tutorial, aprenderás cómo ajustar dinámicamente los años disponibles en los campos de fecha de Gravity Forms en WordPress, utilizando filtros específicos para diferentes situaciones.
Código Base
El siguiente código PHP establece los filtros base para los años en los campos de fecha de Gravity Forms. Este código se integra en el archivo functions.php
de tu tema hijo o en un plugin personalizado.
/* Configurar años en el campo de fecha de Gravity Forms */
// Filtro para el año máximo
add_filter('gform_date_max_year', 'change_max_year');
function change_max_year($max_year) {
return date('Y'); // Mostrar solo el año en curso
}
// Filtro para el año mínimo
add_filter('gform_date_min_year', 'change_min_year');
function change_min_year($min_year) {
return date('Y'); // Mostrar solo el año en curso
}
Explicación del Código Base
add_filter('gform_date_max_year', 'change_max_year')
: Este filtro ajusta el año máximo disponible en el campo de fecha.
change_max_year($max_year)
: La funciónchange_max_year
devuelve el año actual (date('Y')
). Esto hace que el año máximo disponible en el campo de fecha sea el año en curso.
add_filter('gform_date_min_year', 'change_min_year')
: Este filtro ajusta el año mínimo disponible en el campo de fecha.
change_min_year($min_year)
: La funciónchange_min_year
devuelve el año actual (date('Y')
). Esto hace que el año mínimo disponible en el campo de fecha sea el año en curso.
Casos de Uso Adicionales
Mostrar Solo Años Futuros
Para limitar la selección de fechas solo a años futuros (el año actual y los dos siguientes):
add_filter('gform_date_max_year', 'change_max_year_future');
function change_max_year_future($max_year) {
return date('Y') + 2; // Mostrar solo el año en curso y los dos siguientes
}
add_filter('gform_date_min_year', 'change_min_year_future');
function change_min_year_future($min_year) {
return date('Y'); // Mostrar desde el año en curso
}
Mostrar Solo Años Pasados
Si deseas limitar la selección de fechas solo a años pasados (útil para seleccionar fechas de nacimiento o eventos históricos):
add_filter('gform_date_max_year', 'change_max_year_past');
function change_max_year_past($max_year) {
return date('Y'); // Mostrar solo hasta el año en curso
}
add_filter('gform_date_min_year', 'change_min_year_past');
function change_min_year_past($min_year) {
return date('Y') - 100; // Mostrar desde hace 100 años hasta el año en curso
}
Aplicación por Página o Formulario Específico
Puedes aplicar estas modificaciones solo a formularios específicos o páginas determinadas utilizando un condicional:
add_filter('gform_date_max_year', 'change_max_year_specific');
function change_max_year_specific($max_year) {
if (is_page('contactar')) {
return date('Y') + 2; // Año en curso y los dos siguientes
}
return $max_year; // Devolver el año máximo por defecto para otras páginas
}
add_filter('gform_date_min_year', 'change_min_year_specific');
function change_min_year_specific($min_year) {
if (is_page('contactar')) {
return date('Y'); // Año en curso
}
return $min_year; // Devolver el año mínimo por defecto para otras páginas
}
Integración y Personalización
- Personalización: Ajusta los filtros
change_max_year
ychange_min_year
según tus necesidades específicas, modificando la lógica para los años máximos y mínimos según el contexto del formulario o aplicación. - Implementación: Inserta este código en tu plugin de snippets como Code Snippets o en un plugin personalizado para asegurarte de que los filtros se apliquen correctamente según tus requisitos.
Conclusión
Este tutorial te ha proporcionado una guía detallada para configurar dinámicamente los años disponibles en los campos de fecha de Gravity Forms en WordPress. Al ajustar los filtros gform_date_max_year
y gform_date_min_year
para diferentes escenarios, ahora tienes las herramientas para gestionar eficazmente los límites de fechas en tus formularios Gravity Forms según tus necesidades específicas.