Descrizione

Il wpforms_datetime_date_dropdowns filtra le etichette e le opzioni del formato a discesa del campo data.

Parametri

$data
(array) (Obbligatorio) Etichette e intervalli di numeri utilizzati nelle caselle a discesa della data.
$form_id
(int) (obbligatorio) ID modulo.
$campo
(array) (Obbligatorio) Valori e proprietà del campo data.

Fonte

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

Ulteriori informazioni

Il wpforms_datetime_date_dropdowns viene applicato a una matrice contenente le opzioni del menu a tendina della data. Può essere utilizzato per personalizzare le etichette dei menu a tendina del mese, del giorno e dell'anno, nonché le opzioni incluse in ciascuno di essi.

Nota: gli intervalli per giorni, mesi e anni possono accettare solo valori interi.

Esempi

Limitare le date

Nell'esempio riportato di seguito, la funzione limiterà i mesi da gennaio a giugno, i giorni dall'1 al 15 e l'anno inizierà dal 1980.

La funzione cambia anche le etichette rispetto a quelle predefinite MM/DD/YYYY a M/D/Y.

Ricordarsi di cambiare l'ID del modulo da 25 per far corrispondere l'ID del modulo specifico su cui si vuole eseguire il codice. Rimuovendo questo controllo, il codice verrà eseguito per tutti i moduli.

/**
 * 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 );

Ricordarsi di aggiornare l'ID del modulo nello snippet in modo che corrisponda all'ID del proprio modulo. Se avete bisogno di aiuto per trovare il numero ID del vostro modulo, consultate questo tutorial.

Espandere gli anni

Se si desidera espandere gli anni in modo che non si fermino al 2023, utilizzare questo snippet e modificare l'anno massimo di 2050 a ciò che si desidera.


/**
 * 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 );

Riferimento articolo: Personalizzazione del campo data-ora Opzioni data