KI-Zusammenfassung
Einleitung
Möchten Sie den ursprünglichen Dateinamen für Dateien in den E-Mail-Benachrichtigungen beibehalten, wenn Sie die Option Dateianhang-Uploads aktivieren aus den Erweiterten Optionen im Tab Benachrichtigungen aktiviert haben? Standardmäßig fügt WPForms eine Zeichenkette aus Buchstaben und Zahlen zum ursprünglichen Dateinamen hinzu, um die Sicherheit zu gewährleisten und doppelte Dateinamen zu vermeiden. Wenn Sie diese Sicherheitsebene jedoch entfernen möchten, können Sie dies einfach mit einem PHP-Filter erreichen. In diesem Tutorial zeigen wir Ihnen genau, wie das geht!
Dieser Ausschnitt kann nur für WordPress Version 6.2 verwendet werden.
Erstellung des Formulars
Wir beginnen mit der Erstellung eines neuen Formulars. Für diese Dokumentation erstellen wir ein einfaches Anmeldeformular für ein Freizeitsport-Baseballteam, um deren eigene Team-Trikots zu bestellen. Wir werden einige grundlegende Informationen abfragen, aber auch ein Feld für den Datei-Upload hinzufügen, damit die Teams ihre eigenen Designs hochladen können.

Wenn Sie Hilfe beim Erstellen Ihres Formulars benötigen, sehen Sie sich bitte diesen hilfreichen Leitfaden an.
Aktivieren der Option zum Einbeziehen des Dateianhangs
Sobald die Formularfelder hinzugefügt wurden, klicken Sie im Formular-Builder auf den Tab Einstellungen. Gehen Sie dann zum Tab Benachrichtigungen und scrollen Sie nach unten, um die Erweiterten Optionen zu öffnen.
Klicken Sie, um den Schalter für Dateianhang-Uploads aktivieren umzulegen und wählen Sie die Felder aus, für die Sie die Anhänge einschließen möchten. In diesem Tutorial haben wir nur ein Datei-Upload-Feld, daher müssen wir dieses Feld nur zu diesem Abschnitt hinzufügen.

Hinzufügen des Snippets
Als Nächstes fügen wir den Ausschnitt zu unserer Website hinzu. Wenn Sie Hilfe beim Hinzufügen von Ausschnitten zu Ihrer eigenen Website benötigen, finden Sie weitere Informationen in diesem Tutorial.
Bitte beachten Sie, dass dieser Ausschnitt für alle Formulare und Datei-Uploads gilt.
/**
* Retain original file name on file uploads
*
* @link https://wpforms.com/developers/how-to-retain-the-original-file-name-for-file-uploads/
*/
function wpf_emails_send_email_data( $email, $email_obj ) {
if ( empty( $email[ 'attachments' ] ) ) {
return $email;
}
if ( ! isset( $email_obj->form_data, $email_obj->notification_id, $email_obj->fields ) ) {
return $email;
}
$form_data = $email_obj->form_data;
$notification_id = $email_obj->notification_id;
$entry_fields = $email_obj->fields;
if (
empty( $entry_fields ) ||
empty( $form_data[ 'settings' ][ 'notifications' ][ $notification_id ][ 'file_upload_attachment_enable' ] ) ||
empty( $form_data[ 'settings' ][ 'notifications' ][ $notification_id ][ 'file_upload_attachment_fields' ] )
) {
return $email;
}
$attachment_fields = $form_data[ 'settings' ][ 'notifications' ][ $notification_id ]['file_upload_attachment_fields'];
$entry_attachment_fields = [];
foreach ( $attachment_fields as $field_id ) {
if ( ! empty( $entry_fields[ $field_id ] ) ) {
$entry_field = $entry_fields[ $field_id ];
if ( ! empty( $entry_field[ 'style' ] ) && $entry_field[ 'style' ] === 'modern' ) {
foreach ( $entry_field[ 'value_raw' ] as $file ) {
$entry_attachment_fields[ $file[ 'file' ] ] = $file;
}
} else {
$entry_attachment_fields[ $entry_field['file'] ] = $entry_field;
}
}
}
$attachments = [];
foreach ( $email[ 'attachments' ] as $attachment ) {
$file_name = basename( $attachment );
if ( empty( $entry_attachment_fields[ $file_name ][ 'file_user_name' ] ) ) {
$attachments[] = $attachment;
continue;
}
$attachments[ $entry_attachment_fields[ $file_name ][ 'file_user_name' ] ] = $attachment;
}
$email[ 'attachments' ] = $attachments;
return $email;
}
add_filter( 'wpforms_emails_send_email_data', 'wpf_emails_send_email_data', 30, 2 );
Dieser Ausschnitt sucht nach Anhängen in der E-Mail und behält anstelle der gehashten Zeichenkette den ursprünglichen Dateinamen bei, der hochgeladen wurde.
Anstatt dass unsere E-Mail-Anhangsdatei nun einen Dateinamen wie theres-no-base-like-home-svg-8abdd7ea434445587fb0e1b560b137b1.png hat, wird der Name nach dem Hinzufügen des Ausschnitts theres-no-base-like-home-svg.png lauten.

Der Dateiname wird gehasht, um zu verhindern, dass die korrekten URLs zum Herunterladen dieser Dateien vom Server manuell ermittelt werden, und um doppelte Dateinamen zu vermeiden. Die Verwendung dieses Ausschnitts hebt diese von WPForms implementierten Sicherheitsmaßnahmen auf.
Und das war's! Sie haben erfolgreich einen PHP-Filter verwendet, um den ursprünglichen Dateinamen für Dateianhänge in Ihren E-Mail-Benachrichtigungen beizubehalten. Möchten Sie auch die Zeit ändern, die Ihre Besucher für den Upload größerer Dateien haben? Schauen Sie sich unseren Artikel über Ändern des Timeouts für den modernen Datei-Upload an.