Descrição

O wpforms_datetime_date_dropdowns filtra rótulos e opções no formato suspenso do campo de data.

Parâmetros

$datas
(array) (Obrigatório) Rótulos e intervalos de números usados em menus suspensos de data.
$form_id
(int) (Obrigatório) ID do formulário.
$campo
(array) (Obrigatório) Valores e propriedades do campo de data.

Fonte

wpforms/pro/includes/fields/class-date-time.php

Mais informações

O wpforms_datetime_date_dropdowns é aplicado a uma matriz que contém opções de menu suspenso de data. Ele pode ser usado para personalizar os rótulos dos menus suspensos de mês, dia e ano, bem como as opções incluídas em cada um desses menus suspensos.

Observação: Os intervalos para dias, meses e anos só podem aceitar valores inteiros.

Exemplos

Limitação de datas

No exemplo mostrado abaixo, a função limitará os meses de janeiro a junho, os dias do dia 1º ao dia 15 e o ano começará em 1980.

A função também está alterando os rótulos do padrão MM/DD/YYYY para M/D/Y.

Lembre-se apenas de alterar o ID do formulário de 25 para corresponder ao ID do formulário específico no qual você deseja executar o código. A remoção dessa verificação seria executada para todos os formulários.

/**
 * Filters labels and options within the date field’s dropdown format.

 * @link   https://wpforms.com/developers/wpforms_datetime_date_dropdowns/
 * 
 * @param  array  $dates    Months, Days, and Years arguments.
 * @param  int    $form_id  Form ID.
 * @param  array  $field    Date field values and properties.
 *
 * @return array
 */

function wpf_dev_datetime_date_dropdowns( $dates, $form_id, $field ) {

        // Only run on my form with ID = 25
        if ( absint( $form_id ) !== 25 ) {
            return $ranges;
        }  

	$ranges = array(
		'months'       => range( 1, 6 ),
		'days'         => range( 1, 15 ),
		'years'        => range( date( 'Y' ), 1980 ),
		'months_label' => esc_html__( 'M', 'wpforms' ),
		'days_label'   => esc_html__( 'D', 'wpforms' ),
		'years_label'  => esc_html__( 'Y', 'wpforms' ),
	);
	
	return $ranges;
	
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );

Lembre-se de atualizar o ID do formulário no snippet para que corresponda ao seu próprio ID do formulário. Se precisar de ajuda para encontrar o número de ID do formulário, consulte este tutorial.

Expandindo os anos

Se você quiser expandir os anos para que não parem em 2023, use este snippet e altere o ano máximo de 2050 para o que você gostaria.


/**
 * Filters labels and options within the date field’s dropdown format.
 
 * @link   https://wpforms.com/developers/wpforms_datetime_date_dropdowns/
 * 
 * @param  array  $dates    Months, Days, and Years arguments.
 * @param  int    $form_id  Form ID.
 * @param  array  $field    Date field values and properties.
 *
 * @return array
 */
 
function wpf_dev_datetime_date_dropdowns( $dates, $form_id, $field ) {
 
    $ranges = array(
        'months'       => range( 1, 12 ),
        'days'         => range( 1, 31 ),
        'years'        => range( date( 'Y' ), 2050 ),
        'months_label' => esc_html__( 'MM', 'wpforms' ),
        'days_label'   => esc_html__( 'DD', 'wpforms' ),
        'years_label'  => esc_html__( 'YYYY', 'wpforms' ),
    );
     
    return $ranges;
     
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );

Referência do artigo: Personalizar as opções de data do campo Data-Hora