Store file uploads for Contact Form 7

Descripción

Por defecto, Contact Form 7 no guarda los datos que envía a través de sus formularios de contacto.
Mientras plugins como Flamingo guardan los datos, los archivos cargados no se añaden a la biblioteca de medios.
Este plugin si guardará los archivos cargados en la biblioteca de medios antes de que el correo electrónico sea enviado por CF7.
Este plugin va a crear un evento con el recorrido completo del archivo y su nombre.
Subscríbete a el filtro to nmr_create_attachment_file_name para obtener y/o actualizar los datos antes de que el adjunto sea cargado a la biblioteca de medios.

// The filter callback function.
function example_callback( $file_name ) {
    // (maybe) modify $file_name.
    return $file_name;
}
add_filter( 'nmr_create_attachment_file_name', 'example_callback', 10, 1 );

Subscríbete al filtro nmr_before_insert_attachment para ser capaz de cambiar los atributos del adjunto: la leyenda y la descripción son ‘post_excerpt’ y ‘post_content’.
Para ver otros atributos, revisa la documentación en wp_insert_attachment.

// The filter callback function.
function before_insert_attachment_callback( $attachment ) {
    // (maybe) modify $attachment array.
    return $attachment;
}
add_filter( 'nmr_before_insert_attachment', 'before_insert_attachment_callback', 10, 1 );

Opcionalmente, suscríbete al filtro nmr_should_skip_save_attachment_to_media_library para poder omitir la guardia del archivo adjunto en la biblioteca de medios: devuelve true para omitir, false es el comportamiento predeterminado que guarda el archivo adjunto en la biblioteca de medios. El filtro nmr_before_insert_attachment no se llamará si skip es true.

// The filter callback function.
function skip_media_library_callback( $skip_save_to_media_library ) {
    // return true to skip saving to Media Library, false to save.
    return true;
}
add_filter( 'nmr_should_skip_save_attachment_to_media_library', 'skip_media_library_callback', 10, 1 );

Este plugin enviará el ID final del adjunto si estás interesado en obtener otros detalles, como la URL del adjunto.
Escucha la acción nmr_create_attachment_id_generated.

// The action callback function.
function example_callback_id_generated( $attachment_id ) {
    // (maybe) do something with the args.
    $url = wp_get_attachment_url( $attachment_id );
}
add_action( 'nmr_create_attachment_id_generated', 'example_callback_id_generated', 10, 1 );

Documentación y soporte

Revisa el foro de soporte en WordPress.org. Si no puedes localizar ningún debate que se relacione con tu problema en particular, publica un nuevo debate para él.

«Store file uploads for Contact Form 7» necesita de tu apoyo

Es difícil continuar el desarrollo y el soporte a este plugin gratuito sin las contribuciones de usuarios como tú. Si disfrutas usando «Store file uploads for Contact Form 7» y lo encuentras útil, por favor, considera hacer una donación. Tu donación ayudará a fomentar y apoyar el desarrollo continuo del plugin y un mejor soporte al usuario.

Avisos de privacidad

Con la configuración por defecto, este plugin, en sí mismo, no:

  • hace seguimiento oculto de los usuarios;
  • guarda ningún dato personal de usuario en la base de datos;
  • envía ningún dato a servidores externos;
  • usa cookies.

Sin embargo, almacenará los archivos subidos a través de Contact Form 7 en la biblioteca de medios de WordPress.
¡Asegúrate de que los usuarios de tu web sean conscientes de este hecho!

Capturas

  • screenshot-1.jpg

Instalación

  1. Sube toda la carpeta al directorio /wp-content/plugins/.
  2. Activa el plugin a través del menú «Plugins» de WordPress.

Después de eso revisa la biblioteca de medios para ver si hay archivos subidos.

Reseñas

2 de diciembre de 2021 1 respuesta
I am getting error while submitting to CF7. Note: I am trying to upload MP3 files <pre>fatal error: Array ( [type] => 1 [message] => Uncaught Error: Call to undefined function wp_read_audio_metadata() in /home/theuxm/html/wp-admin/includes/image.php:489 Stack trace: #0 /home/theuxm/html/wp-content/plugins/store-file-uploads-for-contact-form-7/store-file-uploads-for-contact-form-7.php(39): wp_generate_attachment_metadata() #1 /home/theuxm/html/wp-content/plugins/store-file-uploads-for-contact-form-7/store-file-uploads-for-contact-form-7.php(55): nmr_create_attachment() #2 /home/theuxm/html/wp-includes/class-wp-hook.php(305): nmr_on_before_cf7_send_mail() #3 /home/theuxm/html/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /home/theuxm/html/wp-includes/plugin.php(518): WP_Hook->do_action() #5 /home/theuxm/html/wp-content/plugins/contact-form-7/includes/submission.php(617): do_action_ref_array() #6 /home/theuxm/html/wp-content/plugins/contact-form-7/includes/submission.php(86): WPCF7_Submission->before_send_mail() #7 /home/theuxm/html/wp-content/plugins/contact-form-7/includes/submission.php(27): WPCF7_Submission->proceed() #8 [file] => /home/theuxm/html/wp-admin/includes/image.php [line] => 489 ) </pre>
3 de marzo de 2021
Thanks! I spent a day wondering why the temporary file was not longer there then another day finding out that CF7 is moving that file. So this is exactly what I was trying to figure out. It does look like files could be overwritten if they are uploaded with an existing name. You can probably do something like the following to ensure files get unique names and are not overwritten. // Get the path to the upload directory. $wp_upload_dir = wp_upload_dir(); $upload_path = $wp_upload_dir['path']; $unique_filename = wp_unique_filename($upload_path, basename($filename)); $attachFileName = $upload_path . '/' . $unique_filename; copy($filename, $attachFileName); // Prepare an array of post data for the attachment. $attachment = array( 'guid' => $attachFileName, 'post_mime_type' => $filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $unique_filename), 'post_content' => '', 'post_status' => 'inherit' );
Leer todas las 6 reseñas

Colaboradores y desarrolladores

«Store file uploads for Contact Form 7» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

«Store file uploads for Contact Form 7» ha sido traducido a 5 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce «Store file uploads for Contact Form 7» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

1.2.3

Añade soporte para omitir la guardia en la Biblioteca de Medios utilizando el filtro nmr_should_skip_save_attachment_to_media_library.

1.2.2

Se agrega soporte para cambiar los atributos del adjunto usando el filtro nmr_before_insert_attachment

1.2.1

  • Se agrega soporte para cargar medios (incluyendo mp3)

1.2.0

  • Añadido el filtro nmr_create_attachment_file_name y la acción nmr_create_attachment_id_generated

1.1.0

  • Contact Form 7 ha cambiado WPCF7_Submission::get_instance()->uploaded_files en CF7 5.4, por lo que ha sido necesario hacer ajustes en este plugin.

1.0.0

  • Primera versión.