Riassunto AI
Introduzione
Desideri conservare il nome file originale sui file all'interno delle notifiche email quando hai abilitato l'opzione Abilita allegati caricamento file dalle opzioni Avanzate nella scheda Notifiche? Per impostazione predefinita, WPForms aggiungerà una stringa di lettere e numeri al nome file originale per motivi di sicurezza e in caso di nomi file duplicati. Tuttavia, se desideri rimuovere questo livello di sicurezza, puoi ottenerlo facilmente con un filtro PHP. In questo tutorial, ti mostreremo esattamente come fare!
Questo snippet può essere utilizzato solo su WordPress versione 6.2.
Creazione del modulo
Inizieremo creando un nuovo modulo. Ai fini di questa documentazione, stiamo creando un semplice modulo di iscrizione per una squadra di baseball amatoriale per ordinare le proprie maglie. Includeremo alcune informazioni di base ma aggiungeremo anche un campo Caricamento file per consentire alle squadre di caricare il proprio design.

Se hai bisogno di aiuto nella creazione del tuo modulo, dai un'occhiata a questa utile guida.
Abilitazione dell'opzione per includere l'allegato file
Una volta aggiunti i campi del modulo, fai clic sulla scheda Impostazioni all'interno del costruttore del modulo. Successivamente, vai alla scheda Notifiche e scorri verso il basso per aprire le opzioni Avanzate.
Fai clic per attivare il pulsante Abilita allegati caricamento file e seleziona i campi per i quali desideri includere gli allegati. In questo tutorial, abbiamo solo un campo Caricamento file, quindi dovremo solo aggiungere quel campo a questa sezione.

Aggiunta dello snippet
Successivamente, aggiungeremo lo snippet al nostro sito. Se hai bisogno di assistenza su come aggiungere snippet al tuo sito, dai un'occhiata a questo tutorial per ulteriori informazioni.
Si prega di notare che aggiungendo questo snippet, sarà lo stesso per tutti i moduli e i caricamenti di file.
/**
* 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 );
Questo snippet cercherà eventuali allegati all'email e, invece di aggiungere la stringa hash, conserverà il nome file originale che è stato caricato.
Ora, invece che il nostro file allegato all'email abbia un nome file come theres-no-base-like-home-svg-8abdd7ea434445587fb0e1b560b137b1.png, il nome dopo l'aggiunta dello snippet sarà theres-no-base-like-home-svg.png.

Il nome del file viene sottoposto ad hash per impedire di scoprire manualmente gli URL corretti per scaricare tali file dal server, nonché per proteggere i file da nomi duplicati. L'utilizzo di questo snippet annullerà queste misure di sicurezza messe in atto da WPForms.
E questo è tutto! Hai utilizzato con successo un filtro PHP per conservare il nome file originale per gli allegati di file nelle tue notifiche email. Desideri anche modificare il tempo che i tuoi visitatori hanno per caricare file più grandi? Dai un'occhiata al nostro articolo su Come modificare il timeout sul caricamento file moderno.