Introduzione
Volete confrontare due date all'interno dello stesso modulo? Utilizzando un piccolo snippet PHP si possono facilmente prendere due date e confrontarle all'interno dello stesso modulo. In questo tutorial, vedremo uno snippet PHP che prenderà due selezionatori di date all'interno dello stesso modulo.
Creazione del modulo
Per prima cosa, dobbiamo impostare il nostro modulo. Creeremo un modulo e aggiungeremo i nostri campi, compresi i due campi del modulo Data, impostati sul formato Data.
Una volta aggiunti questi campi, assicurarsi di impostarli su Scegli data nella scheda Avanzate.
Se avete bisogno di aiuto per creare il vostro modulo, consultate questa documentazione.
Aggiunta dello snippet per il confronto tra due date
Prima di aggiungere lo snippet, è necessario individuare l'ID del modulo ed entrambi gli ID dei campi Data appena aggiunti al modulo.
Se avete bisogno di aiuto per trovare questi numeri ID, consultate questa esercitazione.
Una volta ottenuti questi ID, è possibile aggiungere il seguente snippet al 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 siete sicuri di dove o come aggiungere gli snippet personalizzati al vostro sito, consultate 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 di 3 e l'ID del campo Data di 4 e li assegnerà alle variabili $date_1 e $date_2, in modo da poter verificare se $date_2 è inferiore 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ò di cui avete bisogno per confrontare due date all'interno dello stesso modulo! Volete fornire anche una funzionalità di restrizione dell'età al vostro modulo? Date un'occhiata al nostro tutorial su Come fornire una restrizione di età al campo Datepicker del modulo.
Correlato
Riferimento azione: wpforms_process