Résumé IA
Introduction
Souhaitez-vous conserver le nom de fichier d'origine des fichiers dans les notifications par e-mail lorsque vous avez activé l'option Activer les pièces jointes de téléversement de fichiers dans les options Avancées de l'onglet Notifications ? Par défaut, WPForms ajoutera une chaîne de lettres et de chiffres au nom de fichier d'origine à des fins de sécurité et en cas de doublons de noms de fichiers. Cependant, si vous souhaitez supprimer cette couche de sécurité, vous pouvez facilement y parvenir avec un filtre PHP. Dans ce tutoriel, nous vous montrerons exactement comment faire !
Ce extrait ne peut être utilisé qu'avec la version 6.2 de WordPress.
Création du formulaire
Nous allons commencer par créer un nouveau formulaire. À des fins de documentation, nous créons une simple feuille d'inscription pour une équipe de baseball amateur afin qu'elle puisse commander ses propres maillots. Nous aurons des informations de base, mais nous ajouterons également un champ Téléversement de fichier pour permettre aux équipes de téléverser leur propre design.

Si vous avez besoin d'aide pour créer votre formulaire, veuillez consulter ce guide utile.
Activation de l'option pour inclure la pièce jointe
Une fois les champs du formulaire ajoutés, cliquez sur l'onglet Paramètres dans le constructeur de formulaire. Ensuite, allez à l'onglet Notifications et faites défiler vers le bas pour ouvrir les options Avancées.
Cliquez pour activer le bouton Activer les pièces jointes de téléversement de fichiers et sélectionnez les champs pour lesquels vous souhaitez inclure les pièces jointes. Dans ce tutoriel, nous n'avons qu'un seul champ Téléversement de fichier, nous devons donc simplement ajouter ce champ à cette section.

Ajout du snippet
Ensuite, nous allons ajouter l'extrait à notre site. Si vous avez besoin d'aide pour ajouter des extraits à votre propre site, consultez ce tutoriel pour plus d'informations.
Veuillez noter qu'en ajoutant cet extrait, il sera le même pour tous les formulaires et tous les téléversements de fichiers.
/**
* 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 );
Cet extrait recherchera toutes les pièces jointes à l'e-mail et, au lieu d'ajouter la chaîne hachée, il conservera le nom de fichier d'origine qui a été téléversé.
Maintenant, au lieu que notre fichier joint à l'e-mail ait un nom de fichier comme theres-no-base-like-home-svg-8abdd7ea434445587fb0e1b560b137b1.png, le nom après l'ajout de l'extrait sera theres-no-base-like-home-svg.png.

Le nom de fichier est haché pour empêcher de découvrir manuellement les URL correctes pour télécharger ces fichiers depuis le serveur, ainsi que pour protéger les fichiers contre les doublons de noms. L'utilisation de cet extrait annulera ces mesures de sécurité mises en place par WPForms.
Et voilà ! Vous avez utilisé avec succès un filtre PHP pour conserver le nom de fichier d'origine des pièces jointes dans vos notifications par e-mail. Souhaitez-vous également modifier le temps dont disposent vos visiteurs pour téléverser des fichiers volumineux ? Consultez notre article sur Comment modifier le délai d'expiration du téléversement de fichiers moderne.