Enviar dinámicamente PDF adjunto a una publicación con Contact Form 7
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?
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.
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
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
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
Consulta también https://wordpress.org/support/topic/sending-an-attachment-using-contact-form-7 me ayudó mucho
jmarceli
No funciona para mí. Envía el correo sin problemas, pero no adjunta nada.
adamj
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, esto cambió con la última actualización de CF7 - Estoy intentando encontrar un nuevo método ahora mismo. :-(
Tony Djukic
@ChrisPink Tienes que combinar esta funcionalidad con esto: https://stackoverflow.com/a/48189650/2757809
Tony Djukic