Vergleich zweier Daten im selben Formular

Einführung

Möchten Sie zwei Daten im selben Formular vergleichen? Mit einem kleinen PHP-Snippet können Sie ganz einfach zwei Datumsangaben innerhalb eines Formulars vergleichen. In diesem Tutorial werden wir ein PHP-Snippet verwenden, das zwei Datumsauswahlen innerhalb eines Formulars ermöglicht.

Erstellen des Formulars

Zunächst müssen wir unser Formular einrichten. Wir erstellen ein Formular und fügen unsere Felder hinzu, einschließlich der beiden Datumsfelder, die auf das Datumsformat eingestellt sind.

Erstellen Sie Ihr Formular und fügen Sie Ihre Felder einschließlich der 2 Datumsfelder hinzu.

Sobald Sie diese Felder hinzugefügt haben, müssen Sie sie auf der Registerkarte Erweitert auf Datumsauswahl einstellen.

das Datumsfeld so einstellen, dass die Datumsauswahl für beide Felder verwendet wird

Wenn Sie Hilfe bei der Erstellung Ihres Formulars benötigen, lesen Sie bitte diese Dokumentation.

Hinzufügen des Snippets zum Vergleich zweier Daten

Bevor Sie das Snippet hinzufügen, müssen Sie die Formular-ID und die beiden Feld-IDs für die Datumsfelder ermitteln, die Sie gerade zu Ihrem Formular hinzugefügt haben.

Wenn Sie Hilfe bei der Suche nach diesen ID-Nummern benötigen, lesen Sie bitte diese Anleitung.

Wenn Sie diese IDs haben, können Sie das folgende Snippet in Ihre Website einfügen.

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

Wenn Sie nicht sicher sind, wo oder wie Sie Ihrer Website benutzerdefinierte Snippets hinzufügen können, lesen Sie bitte dieses Tutorial.

Die Art und Weise das Snippet funktioniert, ist es nur auf dem Formular ID 731 ausgeführt wird, dann wird es für das Datum Feld ID von 3 und das Datum Feld ID von 4 suchen und weisen Sie diese an die Variablen $date_1 und $date_2, so dass es überprüfen kann, wenn $date_2 kleiner oder gleich $date_1 ist, wenn es ist es eine Fehlermeldung über das zweite Datum Feld zeigt, dass dieses Datum nicht früher als die anderen sein kann.

Die Fehlermeldung wird oben angezeigt, wenn das Snippet zum Vergleich zweier Daten fehlschlägt

Und das ist alles, was Sie brauchen, um zwei Daten im selben Formular zu vergleichen! Möchten Sie auch eine Funktion für eine Altersbeschränkung in Ihrem Formular einrichten? Sehen Sie sich unser Tutorial über die Altersbeschränkung im Datepicker-Formularfeld an.

Referenz der Aktion: wpforms_process