Riassunto AI
Introduzione
Vuoi confrontare due date all'interno dello stesso modulo? Utilizzando un piccolo snippet PHP puoi facilmente prendere due date e confrontarle all'interno dello stesso modulo. In questo tutorial, ti forniremo uno snippet PHP che prenderà due date picker all'interno dello stesso modulo.
Creazione del modulo
Innanzitutto, dovremo configurare il nostro modulo. Creeremo un modulo e aggiungeremo i nostri campi, inclusi i due campi modulo Data impostati sul formato Data.

Una volta aggiunti questi campi, assicurati di impostarli su Date Picker nella scheda Avanzate.

Se hai bisogno di aiuto nella creazione del tuo modulo, esamina questa documentazione.
Aggiungere lo snippet per confrontare due date
Prima di aggiungere lo snippet, dovrai individuare l'ID del modulo e gli ID di entrambi i campi per i campi Data che hai appena aggiunto al tuo modulo.
Se hai bisogno di aiuto per trovare questi numeri ID, consulta questo tutorial.
Quando avrai questi ID, potrai aggiungere il seguente snippet al tuo sito.
/**
* Compare 2 dates inside the same form.
*
* @link https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/
*/
function wpf_dev_compare_dates( $fields, $entry, $form_data ) {
// Optional, you can limit to specific forms. Below, we restrict output to
// form #731.
if ( absint( $form_data[ 'id' ] ) !== 731 ) {
return $fields;
}
// 3 is the ID of date 1 field
$date_1 = $fields[3][ 'unix' ];
// 4 is the ID of date 2 field
$date_2 = $fields[4][ 'unix' ];
// If date 2 is earlier of the same as time 1
if ( $date_2 <= $date_1 ) {
// [ 'header' ] will display the error message above the form
// [ 'footer' ] will display the error message under the form
wpforms()->process->errors[ $form_data[ 'id' ] ][ 'header' ] = esc_html__( 'The pickup date should not be earlier than the order date.', 'plugin-domain' );
}
}
add_action( 'wpforms_process', 'wpf_dev_compare_dates', 10, 3 );
Se non sei sicuro di dove o come aggiungere snippet personalizzati al tuo sito, dai un'occhiata a questo tutorial.
Il modo in cui funziona lo snippet è che verrà eseguito solo sull'ID del modulo 731, quindi cercherà l'ID del campo Data 3 e l'ID del campo Data 4 e li assegnerà alle variabili $date_1 e $date_2 in modo che possa verificare se $date_2 è minore o uguale a $date_1. In caso affermativo, visualizzerà un errore sopra il secondo campo Data indicando che questa data non può essere precedente all'altra.

E questo è tutto ciò che ti serve per confrontare due date all'interno dello stesso modulo! Vuoi fornire anche una funzionalità per una restrizione di età al tuo modulo? Dai un'occhiata al nostro tutorial su Come fornire una restrizione di età sul campo modulo Datepicker.
Correlati
Riferimento azione: wpforms_process