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

So fügen Sie dem Eingangsdatum ein Jahr hinzu

Möchten Sie dem Eingangsdatum Ihrer Formularübermittlungen automatisch ein Jahr hinzufügen? In diesem Tutorial führen wir Sie durch den Prozess der Einrichtung eines Formulars für Freiwillige, einschließlich eines Startdatums. Zusätzlich zeigen wir Ihnen, wie Sie mithilfe von PHP dynamisch ein Ablaufdatum generieren, das ein Jahr nach ihrem Anmeldedatum liegt. Dies beinhaltet die Erstellung von versteckten Feldern, um sowohl das Startdatum des Freiwilligen als auch das berechnete Ablaufdatum zu speichern. Tauchen wir ein!

Erstellung des Formulars

Wir beginnen mit der Erstellung eines neuen Formulars. Wenn Sie Hilfe beim Erstellen eines neuen Formulars benötigen, lesen Sie bitte diese Dokumentation.

Für dieses Tutorial erstellen wir ein Anmeldeformular für Freiwillige. Dieses Formular erfasst die verschiedenen Informationen, die für die Freiwilligen benötigt werden, sowie zwei versteckte Felder, die das Startdatum (das Eingangsdatum der Übermittlung) und ein Ablaufdatum für den Freiwilligen speichern, da wir möchten, dass sich der Freiwillige jedes Jahr erneut anmeldet.

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

Definieren der versteckten Felder

In unserem Formular haben wir zwei versteckte Felder. Eines dient zum Speichern der Informationen des genauen Eingangsdatums und das zweite ist, wo wir das Eingangsdatum nehmen, ein Jahr hinzufügen und diese Daten dann im zweiten versteckten Feld speichern, das ein Ablaufdatum sein wird.

Fügen Sie Ihrem Formular 2 versteckte Felder hinzu, die das Einreichungsdatum sowie das Datum enthalten, das wir in unserem Snippet für das Ablaufdatum erstellen werden

Ein Jahr zum WPForms-Eingangsdatum hinzufügen

Jetzt ist es an der Zeit, den Codeausschnitt auf Ihrer Website hinzuzufügen. Wenn Sie Hilfe benötigen, wie und wo Sie Codeausschnitte zu Ihrer Website hinzufügen, sehen Sie sich unser Tutorial zu diesem Thema an.

/**
 * Add one year to the entry date and store this date inside a hidden field
 *
 * @link   https://wpforms.com/developers/how-to-add-a-year-to-the-wpforms-entry-date/
 */
 
function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) {
      
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #2189.
    if ( absint( $form_data[ 'id' ] ) !== 2189 ) {
        return;
    }
     
    // Get the full entry object
    $entry = wpforms()->entry->get( $entry_id );
 
    // Fields are in JSON, so we decode to an array
    $entry_fields = json_decode( $entry->fields, true );
	
    // Checking to make sure Name field (ID 2) is not empty
	if (isset( $fields[2][ 'value' ] )) {
		
		// Set the date to today's date so the Entry Date is recorded
        // on the first hidden field in the form
        // Remember to update the 30 to match the field ID of your form for your first hidden field
		$entry_fields[30][ 'value' ] = date('m/d/Y');

        // Set the date format and store the current date in a variable
		$setDate = date('m/d/Y');
		$date = strtotime($setDate);
		
		// Get the date set above and add 1 year to this date
        $new_date = strtotime('+ 1 year', $date);
		
		// Store this new date inside the hidden field ID 
		// Remember to update the 33 to match the field ID of your form for your second hidden field
		$entry_fields[33][ 'value' ] = date('m/d/Y', $new_date);
			
	}

    // Convert back to json
    $entry_fields = json_encode( $entry_fields );
 
    // Save changes
    wpforms()->entry->update( $entry_id, array( 'fields' => $entry_fields ), '', '', array( 'cap' => false ) );
 
}
add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );

Im obigen Codeausschnitt ist es wichtig zu beachten, dass es einen Verweis auf die Formular-ID (2189) sowie einige Verweise auf Feld-IDs (2, 30 und 33) gibt. Sie müssen jede dieser ID-Nummern aktualisieren, um Ihre eigenen Formular- und Feld-IDs anzugeben. Wenn Sie Hilfe benötigen, wo Sie Ihre ID-Nummern finden, sehen Sie sich dieses Tutorial an.

Im obigen Codeausschnitt beginnt unsere Funktion damit, sicherzustellen, dass die Formular-ID mit 2189 übereinstimmt. Wenn nicht, wird dieser Codeausschnitt nicht ausgeführt.

Im nächsten Teil des Codeausschnitts prüfen wir nur, ob das Feld Name (dies ist die Feld-ID 2) nicht leer ist. Da wir unser Formular so eingerichtet haben, dass das Feld Name ein Pflichtfeld ist, wissen wir, dass dieses niemals leer sein wird, aber wir haben es trotzdem als Validierungsprüfung eingefügt.

Wenn wir mit unserem Codeausschnitt fortfahren, setzen wir das erste versteckte Feld (Feld-ID 30) auf das aktuelle Datum, was dem Eingangsdatum der Übermittlung entspricht.

Und schließlich nehmen wir das aktuelle Datum, fügen ein Jahr hinzu und platzieren dieses neue Datum dann im zweiten versteckten Feld (Feld-ID 33).

Und jetzt, wenn Sie den Eintrag anzeigen, können Sie klar das ursprüngliche Datum der Formularübermittlung sowie das neue Datum sehen, das als Ablaufdatum des Eintrags dient.

Mit dem Snippet an Ort und Stelle sehen Sie das Eingabedatum im ersten versteckten Feld und das neue Datum, das wir durch Hinzufügen von 1 Jahr zum Eingabedatum für unser Freiwilligen-Ablaufdatum erstellt haben

Sie können der Anleitung in dieser Dokumentation folgen, um die Standardansicht des Eintragsbildschirms zu ändern, damit Sie diese Daten leicht sehen können, wenn Sie alle Einträge anzeigen.

Durch Änderung der Standardansicht für Ihre Einträge können Sie die versteckten Felder mit den Daten leicht sehen, während Sie alle Einträge anzeigen.

Und das ist alles! Sie haben erfolgreich ein neues Datum in Ihren Einträgen hinzugefügt und gespeichert, das genau ein Jahr vom Eingabedatum entfernt ist. Möchten Sie auch Feldwerte in Ihren Einträgen speichern? Sehen Sie sich unser Tutorial an: Speichern von Feldwerten im WPForms-Eintrag.

Referenzaktion

wpforms_process_complete