Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

Zwei Zeitfelder in einem Formular vergleichen

Einleitung

Möchten Sie zwei Zeit-Felder in Ihrem Formular vergleichen und die berechnete Differenz in Ihrem Eintrag erfassen? Suchen Sie nicht weiter! Dieses Tutorial ist genau das Richtige für Sie. Wir führen Sie durch den Prozess der Konfiguration Ihres Formulars und stellen Ihnen den notwendigen PHP-Code-Schnipsel zur Verfügung, um diese Funktionalität nahtlos auf Ihrer Website zu implementieren.

Erstellung des Formulars

Um zu beginnen, erstellen wir ein neues Formular und konfigurieren unsere Felder. In dieser Anleitung entwerfen wir ein Formular speziell für die Reservierung von Partyräumen. Unser Code-Schnipsel verwendet ein Verstecktes Feld, um die Gesamtzahl der reservierten Stunden automatisch zu berechnen und dem Eintrag hinzuzufügen. Diese Funktion ist besonders nützlich für das Buchhaltungsteam und bietet einen einfachen Überblick für die Rechnungsstellung.

Wenn Sie mit der Erstellung von Formularen nicht vertraut sind, können Sie diese Dokumentation zurate ziehen.

In unserer Formular-Einrichtung werden wir Standardfelder wie Name, E-Mail, Adresse und Telefon einbeziehen. Zusätzlich werden wir ein Dropdown-Feld für die Raumauswahl, ein Datums-Feld für das Reservierungsdatum, zwei Zeit-Felder für die Angabe der Start- und Endzeiten der Reservierung und schließlich ein abschließendes Verstecktes Feld zur Speicherung der berechneten Gesamtstunden mithilfe unseres Code-Schnipsels integrieren.

Beginnen Sie mit der Erstellung Ihres Formulars und dem Hinzufügen Ihrer Felder

Hinzufügen des Snippets

Als Nächstes fügen wir den Code-Schnipsel zu unserer Website hinzu. Wenn Sie nicht sicher sind, wo oder wie Sie Code-Schnipsel hinzufügen können, sehen Sie sich bitte dieses Tutorial an.

/**
 * Compare two time fields in a form
 * 
 * @link https://wpforms.com/developers/how-to-compare-two-time-fields-in-a-form/
 */

function wpf_wpforms_update_total_field( $fields, $entry, $form_data ) {

	// Only run on my form with ID = 731
	if( 731 != $form_data[ 'id' ] ){
        return $fields;
    }
	
    // Field ID 37 is the first time field of the form
    $start_time = strtotime( $fields[37][ 'value' ] );
    
    // Field ID 38 is the second time field of the form
    $finishing_time = strtotime( $fields[38][ 'value'] );
	
    // Field ID 41 is the hidden field that will calculate the difference
    // between the two time fields and store the hours inside a hidden field of the entry
	$fields[41][ 'value' ] = round(abs($finishing_time  - $start_time)/ 3600,2) . __( ' Hours', 'text-domain');

	return $fields;
}

add_filter( 'wpforms_process_filter', 'wpf_wpforms_update_total_field', 10, 3 );

Dieser Code-Schnipsel wird nur für die Formular-ID 731 ausgeführt. Er betrachtet die beiden Zeit-Felder des Formulars mit den IDs 37 und 38. Mithilfe der Funktion round berechnet er die Differenz zwischen den beiden Zeiten und speichert die Differenz im Versteckten Feld.

Sie müssen den Code-Schnipsel aktualisieren, um die Formular- und Feld-IDs anzupassen, die Sie in Ihrem Formular haben. Wenn Sie Hilfe benötigen, wo Sie diese IDs finden, sehen Sie sich bitte dieses Tutorial an.

Mit diesem Code-Schnipsel können Sie jetzt zwei Zeitfelder in einem Formular verwenden

Möchten Sie auch zwei Daten vergleichen? Werfen Sie einen Blick auf unser Tutorial So vergleichen Sie zwei Daten im selben Formular.

Aktionsreferenz: wpforms_process