Establecer el año mínimo y máximo en los campos de fecha de Gravity Forms

    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

    1. 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ón change_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.
    1. 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ón change_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 y change_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.