Resumen de IA
Introducción
¿Desea conservar el nombre de archivo original en los archivos dentro de las notificaciones por correo electrónico cuando haya habilitado la opción Habilitar archivos adjuntos de carga de archivos en las opciones Avanzadas de la pestaña Notificaciones? Por defecto, WPForms agregará una cadena de letras y números al nombre de archivo original por motivos de seguridad y en caso de nombres de archivo duplicados. Sin embargo, si desea eliminar esta capa de seguridad, puede lograrlo fácilmente con un filtro PHP. ¡En este tutorial, le mostraremos exactamente cómo lograrlo!
Este fragmento solo se puede usar en la versión 6.2 de WordPress.
Creación del formulario
Comenzaremos creando un nuevo formulario. Para el propósito de esta documentación, estamos haciendo una hoja de registro simple para un equipo de béisbol recreativo para que pidan sus propias camisetas de equipo. Tendremos información básica, pero también agregaremos un campo de Carga de archivos para permitir que los equipos carguen su propio diseño.

Si necesita ayuda para crear su formulario, consulte esta útil guía.
Habilitar la opción para incluir el archivo adjunto
Una vez que se agregan los campos del formulario, haga clic en la pestaña Configuración dentro del constructor del formulario. Luego, diríjase a la pestaña Notificaciones y desplácese hacia abajo para abrir las opciones Avanzadas.
Haga clic para activar el botón Habilitar archivos adjuntos de carga de archivos y seleccione los campos para los que desea incluir los archivos adjuntos. En este tutorial, solo tenemos un campo de Carga de archivos, por lo que solo necesitaremos agregar ese campo a esta sección.

Añadir el fragmento
A continuación, vamos a agregar el fragmento a nuestro sitio. Si necesita ayuda sobre cómo agregar fragmentos a su propio sitio, consulte este tutorial para obtener más información.
Tenga en cuenta que al agregar este fragmento, será el mismo para todos los formularios y cargas de archivos.
/**
* 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 );
Este fragmento buscará cualquier archivo adjunto al correo electrónico y, en lugar de agregar la cadena cifrada, conservará el nombre de archivo original que se cargó.
Ahora, en lugar de que nuestro archivo adjunto de correo electrónico tenga un nombre de archivo como theres-no-base-like-home-svg-8abdd7ea434445587fb0e1b560b137b1.png, el nombre después de agregar el fragmento será theres-no-base-like-home-svg.png.

El nombre del archivo se cifra para evitar que se descubran manualmente las URL correctas para descargar esos archivos del servidor, así como para proteger los archivos de nombres de archivo duplicados. El uso de este fragmento anulará estas medidas de seguridad que WPForms implementa.
¡Y eso es todo! Ha utilizado con éxito un filtro PHP para conservar el nombre de archivo original de los archivos adjuntos en sus notificaciones por correo electrónico. ¿También le gustaría modificar el tiempo que tienen sus visitantes para cargar archivos más grandes? Eche un vistazo a nuestro artículo sobre Cómo cambiar el tiempo de espera en la carga de archivos moderna.