Subida de archivos y adjuntos

En esta entrada explicaré la característica de subida de archivos y adjuntos de Contact Form 7. Con esta característica, puedes permitir que tus usuarios suban sus archivos a través de tu formulario y luego se te envíe un correo electrónico con los archivos adjuntos.

Para configurarla, se necesitan dos pasos: 1) Añadir campos de subida de archivos en tu formulario, 2) Configurar tus ajustes de correo para adjuntar los archivos subidos. Estos dos pasos se explicarán a continuación.

Añadir campos de subida de archivos en tu formulario

Al igual que para otros tipos de campos de formulario, Contact Form 7 proporciona etiquetas de formulario para campos de subida de archivos (<input type="file"> en HTML): file y file*. La etiqueta con el asterisco file*, determina que es un campo obligatorio y requiere que el usuario suba un archivo.

OpciónEjemplosDescripción
id:(id)id:fooValor del atributo id de la etiqueta input.
class:(clase)class:barValor del atributo class de la etiqueta input. Para establecer dos o más clases, puedes usar varias opciones class:. Ejemplo: [file tu-archivo class:y2008 class:m01 class:d01].
filetypes:(tipos de archivo)filetypes:gif|png|jpg|jpegTipos de archivos aceptables. Enumera las extensiones de archivo después de filetypes:, y sepáralas con el caracter «|» (barra vertical) cuando establezcas varios tipos de archivo.
limit:(num)limit:1048576
limit:1024kb
limit:1mb
Limita el tamaño máximo de archivo aceptable. Puedes utilizar el sufijo kb (kilobyte) o mb (megabyte) opcionalmente. Si omites el sufijo, el número significará bytes. Ten en cuenta que no puedes usar un punto decimal en él (por ejemplo: [file tu-archivo limit:1.5mb]) ya que será ignorado si existe.

Ejemplo:

[file tu-archivo filetypes:pdf|txt limit:2mb]

Contact Form 7 aplica las restricciones por defecto para los tipos y el tamaño de archivo cuando no estableces explícitamente las opciones filetypes: y limit: (tamaño de archivo). Los tipos de archivo (extensiones) aceptables por defecto son: jpg, jpeg, png, gif, pdf, doc, docx, ppt, pptx, odt, avi, ogg, m4a, mov, mp3, mp4, mpg, wav y wmv. El tamaño de archivo aceptable por defecto es 1 MB (1048576 bytes).

Configurando los archivos adjuntos en un correo electrónico

Para adjuntar los archivos subidos al correo electrónico, coloca las etiquetas de correo correspondientes a las etiquetas de formulario de los campos de subida de archivos en el campo Archivos adjuntos en el panel de la pestaña Correo electrónico como se muestra a continuación:

Captura de pantalla del campo archivo adjunto
Captura de pantalla del campo Archivos adjuntos

En este ejemplo, la etiqueta de formulario del campo de subida de archivos es:

[file tu-archivo filetypes:pdf]

Por lo tanto, la etiqueta de correo correspondiente a esta es:

[tu-archivo]

Ten en cuenta que lo que pones en el campo Archivos adjuntos es [tu-archivo] (la etiqueta de correo), no [file tu-archivo filetypes:pdf] (esta no es una etiqueta de correo sino una etiqueta de formulario).

Si has subido varios archivos y quieres adjuntarlos a un correo electrónico, simplemente alinea las etiquetas de correo en el campo Archivos adjuntos de esta manera:

[tu-archivo][tu-otro-archivo]

Archivo adjunto local

Contact Form 7 es compatible con archivos adjuntos locales. Puedes colocar rutas de archivos locales en el campo Archivos adjuntos y esos archivos se adjuntarán al correo electrónico, al igual que los archivos subidos.

Pon una ruta de archivo por línea. Cuando la ruta no sea una ruta absoluta, se tratará como una ruta relativa al directorio wp-content.

Por razones de seguridad, no se permite especificar archivos fuera del directorio wp-content para archivos adjuntos de correo electrónico, de modo que tienes que colocar los archivos en wp-content o un subdirectorio de este.

Ejemplo:

[tu-archivo][tu-otro-archivo]
uploads/2020/22/08/manualdeuso.pdf

Cómo se gestionan tus archivos subidos

Después de que un usuario sube un archivo a través de tu formulario de contacto, Contact Form 7 comprueba si: 1.) Se han producido errores de PHP; 2.) el tipo y el tamaño del archivo son válidos; y luego, si la comprobación es correcta, Contact Form 7 mueve el archivo subido a una carpeta temporal. En este punto, Contact Form 7 adjunta el archivo al correo y lo envía. Después de estos procedimientos, Contact Form 7 elimina el archivo de la carpeta temporal.

La ubicación de la carpeta temporal por defecto es wp-content/uploads/wpcf7_uploads. Puede ser diferente si has cambiado el ajuste de la ruta de subida wp-content/uploads.

Esta carpeta se crea automáticamente, pero a veces puede fallar. La razón más probable de esto es que la carpeta principal no tenga suficientes permisos de escritura. En tales casos, puedes cambiar los permisos o crear una carpeta manualmente.

También puedes cambiar la ruta de la carpeta temporal, estableciendo la constante WPCF7_UPLOADS_TMP_DIR en tu archivo wp-config.php de este modo:

define( 'WPCF7_UPLOADS_TMP_DIR', '/tu/ruta/de/archivos' );

Si la constante WPCF7_UPLOADS_TMP_DIR está definida, este directorio se usará como la carpeta temporal en su lugar.

Asegúrate de que tu carpeta temporal para los archivos subida exista y tenga permisos de escritura. De lo contrario, la subida de todos los archivos fallará.

Just another contact form plugin for WordPress. Simple but flexible.

A %d blogueros les gusta esto: