Möchten Sie automatisch ein Jahr zum Eintrittsdatum Ihrer Formularübermittlungen hinzufügen? In diesem Tutorial führen wir Sie durch den Prozess der Einrichtung eines Formulars für Freiwillige, komplett mit einem Startdatum. Außerdem zeigen wir Ihnen, wie Sie mit PHP dynamisch ein Ablaufdatum generieren können, das ein Jahr vor dem Anmeldedatum liegt. Dazu müssen Sie versteckte Felder erstellen, um sowohl das Startdatum des Freiwilligen als auch das berechnete Ablaufdatum zu speichern. Los geht's!
Erstellen des Formulars
Wir beginnen mit der Erstellung eines neuen Formulars. Wenn Sie Hilfe bei der Erstellung eines neuen Formulars benötigen, lesen Sie bitte diese Dokumentation.
In diesem Tutorial erstellen wir ein Formular für die Anmeldung von Freiwilligen. Dieses Formular erfasst die verschiedenen Informationen, die für die Freiwilligen benötigt werden, sowie zwei verborgene Felder, in denen das Startdatum, d. h. das Eingangsdatum der Anmeldung, sowie ein Ablaufdatum für den Freiwilligen gespeichert werden, da wir wollen, dass sich der Freiwillige jedes Jahr erneut anmeldet.
Definieren der ausgeblendeten Felder
In unserem Formular haben wir zwei versteckte Felder. Das eine dient dazu, die Informationen des genauen Eintragsdatums zu speichern, und das zweite dient dazu, das Eintragsdatum zu nehmen, ein Jahr hinzuzufügen und diese Daten dann im zweiten versteckten Feld zu speichern, das ein Verfallsdatum sein wird.
Hinzufügen einer Jahreszahl zum Eingabedatum von WPForms
Jetzt ist es an der Zeit, das Snippet zu Ihrer Website hinzuzufügen. Wenn Sie Hilfe benötigen, wie und wo Sie Snippets zu Ihrer Website hinzufügen können, lesen Sie bitte unser Tutorial zu diesem Thema.
/** * 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 Ausschnitt ist zu beachten, dass es eine Formular-ID-Referenz(2189) sowie einige Feld-ID-Referenzen(2, 30 und 33) gibt. Sie müssen jede dieser ID-Nummern aktualisieren, damit sie mit Ihren eigenen Formular- und Feld-IDs übereinstimmen. Wenn Sie Hilfe brauchen, um Ihre ID-Nummern zu finden, lesen Sie bitte dieses Tutorial.
Im obigen Ausschnitt beginnt unsere Funktion mit der Überprüfung, ob die Formular-ID übereinstimmt 2189
Wenn das nicht der Fall ist, wird dieses Snippet nicht ausgeführt.
Im nächsten Teil des Snippets überprüfen wir, ob die Name Feld (dies ist die Feld-ID 2
) nicht leer ist. Da wir unser Formular so eingerichtet haben, dass die Name Da das Feld ein Pflichtfeld ist, wissen wir, dass es nie leer sein wird, aber wir haben es trotzdem als Validierungsprüfung eingefügt.
Sobald wir mit unserem Snippet fortfahren, setzen wir das erste versteckte Feld (Feld-ID 30
) auf das aktuelle Datum, das mit dem Eingangsdatum der Einreichung übereinstimmt.
Und schließlich nehmen wir das aktuelle Datum, fügen ein Jahr hinzu und platzieren das neue Datum im zweiten verborgenen Feld (Feld-ID 33
).
Wenn Sie nun den Eintrag ansehen, können Sie das ursprüngliche Datum der Einreichung des Formulars sowie das neue Datum, das als Ablaufdatum der Einreichung gilt, deutlich erkennen.
Sie können sogar die Anleitung in dieser Dokumentation befolgen, um die Standardansicht des Eintragsbildschirms zu ändern, so dass Sie diese Daten leicht sehen können, wenn Sie alle Einträge ansehen.
Und das war's! Sie haben erfolgreich ein neues Datum in Ihre Einträge eingefügt und gespeichert, das genau ein Jahr nach dem Eintragsdatum liegt. Möchten Sie auch Feldwerte in Ihren Einträgen speichern? Schauen Sie sich unser Tutorial über das Speichern von Feldwerten im WPForms-Eintrag an.