Enviar dinámicamente PDF adjunto a una publicación con Contact Form 7

24 ene 2015, 19:56:01
Vistas: 16.7K
Votos: 1

Estoy intentando enviar un PDF dinámico que está adjunto a una publicación mediante el plugin Contact Form 7.

Supongo que necesito usar el hook:

add_action('wpcf7_before_send_mail','send_pdf');

Ya que es el hook que he visto usado más comúnmente al buscar una solución.

Esto es lo que tengo, he estado probando primero con un PDF de prueba con una URL absoluta:

function send_pdf( $cf7 ) {
    if ($cf7->id==741){
        $cf7->uploaded_files = array ( 'pdf' => get_template_directory().'/test.pdf' );
    }
}

Si entiendo correctamente, si el ID del formulario de contacto es correcto y tengo [pdf] en el campo "adjunto de archivo" de mail2, entonces ese PDF debería enviarse por correo a la persona que ha enviado sus datos.

Sin embargo, en mi caso esto no funciona, recibo el correo pero sin ningún adjunto.

¿Hay algo que me esté perdiendo o quizás conocen otro método que funcione?

0
Todas las respuestas a la pregunta 1
10

Prueba esto en su lugar. Hubo una reestructuración interna en CF7 3.9.

add_action('wpcf7_before_send_mail','send_pdf');

function send_pdf( $cf7 ) {
    $id = $cf7->id();
    if ($id==741){
        $submission = WPCF7_Submission::get_instance();
        $submission->add_uploaded_file('pdf', get_template_directory().'/test.pdf');
    }
}

Esto debería funcionar.

24 ene 2015 20:41:57
Comentarios

Eres una persona maravillosa, funciona genial. Ah, quizás quieras agregar una barra antes de test.pdf, fue un error tipográfico de mi parte. Podría confundir a las personas que lo usen :)

UzumakiDev UzumakiDev
24 ene 2015 20:55:34

Buen punto sobre el error tipográfico. ¡Me alegra que funcione!

WordPress Mike WordPress Mike
24 ene 2015 20:58:52

No supongo que sepas por qué esa URL test.pdf funcionó pero una URL como /wp-content/uploads/2015/01/test.pdf no lo hace. ¿Tiene algo que ver con los permisos del plugin?

UzumakiDev UzumakiDev
24 ene 2015 22:13:56

¿Estás codificando la URL manualmente?

WordPress Mike WordPress Mike
25 ene 2015 22:54:13

Creo que necesitas una ruta absoluta. Podrías probar con get_home_path(); No puedo probarlo ahora mismo, pero avísame si funciona.

WordPress Mike WordPress Mike
25 ene 2015 23:33:38

Consulta también https://wordpress.org/support/topic/sending-an-attachment-using-contact-form-7 me ayudó mucho

jmarceli jmarceli
27 nov 2015 16:06:52

No funciona para mí. Envía el correo sin problemas, pero no adjunta nada.

adamj adamj
26 abr 2016 08:21:20

Como esta parece ser una respuesta aceptada, ¿por qué estoy recibiendo el error: Uncaught Error: Call to private method WPCF7_Submission::add_uploaded_file()?

Chris Pink Chris Pink
3 mar 2021 10:28:34

Chris Pink, esto cambió con la última actualización de CF7 - Estoy intentando encontrar un nuevo método ahora mismo. :-(

Tony Djukic Tony Djukic
4 mar 2021 23:32:50

@ChrisPink Tienes que combinar esta funcionalidad con esto: https://stackoverflow.com/a/48189650/2757809

Tony Djukic Tony Djukic
5 mar 2021 18:58:50
Mostrar los 5 comentarios restantes