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

Formular basierend auf der Tageszeit planen

Möchten Sie ein Formular basierend auf bestimmten Tageszeiten planen? Dies ist ganz einfach – Sie können Ihr Formular mühelos so einrichten, dass es zu festgelegten Zeiten angezeigt oder nicht angezeigt wird.

In diesem Tutorial führen wir Sie durch den Prozess der nahtlosen Implementierung dieser Funktionalität mithilfe des bereitgestellten Code-Snippets.

Lassen Sie uns eintauchen und die Planung Ihres Formulars zum Kinderspiel machen!


Erstellen des Formulars

Zuerst erstellen wir ein neues Formular und fügen unsere Felder hinzu. Wenn Sie Hilfe beim Erstellen Ihres Formulars benötigen, werfen Sie einen Blick auf diesen hilfreichen Leitfaden.

Um ein Formular zu planen, müssen Sie zuerst eines erstellen und Ihre Felder hinzufügen

Hinzufügen des Snippets

Sobald Ihr Formular erstellt ist, müssen Sie diesen Snippet auf Ihrer Website hinzufügen. Wenn Sie Hilfe benötigen, wie und wo Sie Snippets zu Ihrer Website hinzufügen können, lesen Sie bitte dieses Tutorial.

/* Hide a specific form based on the time of day 
 *
 * @link https://wpforms.com/developers/how-to-schedule-a-form-base-on-the-time-of-day/
*/
 
function wpf_dev_form_open_check( $form_data, $form ) {
     
    // Only process this snippet on form ID 3602
    if ( absint( $form_data[ 'id' ] ) !== 3602 ) {
        return;
    } 
    
	// H is for 24 hour format and h is for the 12 hour format
	// Get the current 24 hour format in hours only, this is pulled from your server
	$hours = intval(date('H'));

    // The form will be closed to any submissions from 8PM (20 in 24-hour time format) to 8AM
    if ( $hours >= 20 && $hours < 8 ) {
		// Display a message stating the form is currently closed
    	_e( 'We\'re sorry, this contest is only open for entry everyday from 8:00 AM EST to 8:00 PM EST. Please check back tomorrow for your raffle entry.', 'textdomain' );
		
		// Run a separate script to hide the form if it is currently closed to submissions
		echo '<script type="text/javascript">';
		echo 'jQuery("#wpforms-form-3602").hide();';
		echo '</script>';
	}

}
add_action( 'wpforms_frontend_output_after', 'wpf_dev_form_open_check', 10, 2 );

Es gibt ein paar Dinge, die in diesem Skript zu beachten sind. Dieses Skript läuft nur für die Formular-ID 3602. Sie müssen diese ID-Nummer also an Ihre eigene Formular-ID anpassen.

Um Hilfe beim Auffinden Ihrer Formular-ID-Nummer zu erhalten, prüfen Sie bitte dieses Tutorial.

Als Nächstes berücksichtigt die Variable $hours nur die aktuelle Stunde auf Ihrem Server, nicht die des Browsers oder Computers des Benutzers. Sie ruft die Stunde auch im 24-Stunden-Format mithilfe des Großbuchstabens H ab. Wenn Sie das 12-Stunden-Format verwenden möchten, ändern Sie das H in ein h. Abhängig vom gewählten Format müssen Sie möglicherweise if ( $hours >= 20 && $hours < 8 ) aktualisieren.

Denken Sie daran, die Nachricht, die Ihren Benutzern in der _e-Anweisung angezeigt wird, so zu aktualisieren, dass sie dem entspricht, was Sie anzeigen möchten, wenn das Formular für Ihre Besucher geschlossen ist.

Schließlich versteckt der letzte Teil des Skripts die Formular-ID 23 mit echo 'jQuery("#wpforms-form-3602").hide();';. Denken Sie daran, die 3602 an Ihre eigene Formular-ID anzupassen.

Wenn ein Besucher Ihre Seite besucht, wenn das Formular geschlossen ist, sieht er Ihre Nachricht.

Mit diesem Snippet haben Sie Ihr Formular einfach so geplant, dass es nur zu bestimmten Tageszeiten angezeigt wird

Und das ist alles, was Sie brauchen, um ein Formular basierend auf der Tageszeit zu planen!

Möchten Sie als Nächstes eine Schaltfläche zum Senden anzeigen oder ausblenden? Werfen Sie einen Blick auf unser Tutorial zum bedingten Anzeigen der WPForms-Sende-Schaltfläche.

Aktionsreferenz: wpforms_frontend_output_after