Contact Form 7 - ¿Enviar archivo adjunto al remitente?

19 oct 2011, 15:35:53
Vistas: 31.3K
Votos: 2

He instalado el plugin Contact Form 7 en mi instancia de WP 3.2.1.

He configurado un formulario de contacto para que los usuarios soliciten evaluaciones.

Todo está funcionando bien, pero esperaba que cuando envíen una solicitud, pudiera enviarles un correo electrónico con un folleto de producto adjunto.

Actualmente lo tengo configurado así:

Configuración de correo electrónico en Contact Form 7 mostrando el campo de archivos adjuntos

He intentado usar [file-691] donde 691 es el ID del archivo subido en la galería de medios.

Ninguna de las dos formas parece funcionar.
¿Cuál es la forma correcta de lograr esto?

0
Todas las respuestas a la pregunta 5
0

Por lo que sé, la función que estás intentando usar no está diseñada para utilizarse de esta manera. De hecho, está pensada para darle al remitente la opción de subir un archivo que se envía junto con su mensaje de correo.

No creo que esta característica esté disponible en Contact Form 7

19 oct 2011 17:54:41
0

CF7 no funcionará de esa manera. Lo que estás intentando hacer debe configurarse a nivel del servidor o del cliente de correo, no a nivel de aplicación en WordPress.

Configura un auto-respondedor de correo en tu servidor de correo o en tu cliente de email.

24 ene 2012 21:56:54
2

Prueba el plugin email-before-download utilizado junto con el plugin download monitor. Estos se integran perfectamente con CF7 y todo lo que necesitas hacer es seleccionar el ARCHIVO ADJUNTO para que se envíe por correo en lugar de un enlace de descarga directa. Funciona de maravilla.

20 sept 2012 20:44:26
Comentarios

Intenta reformular tu respuesta con más detalles específicos.

Brian Fegter Brian Fegter
29 sept 2012 08:19:32

@aly22, ¿podrías indicarme la fuente correcta de "email-before-download"?

alex alex
17 feb 2013 21:34:34
1

Disculpa por mi mal inglés y mis aún peores habilidades en PHP.

Puedes usar email-before-download pero... no conseguí que funcionara como quería. Intenté un poco de código y creo que esto funciona. No es la forma más elegante, pero puedes usar el enlace al archivo dentro del campo de adjuntos en la interfaz de administración. Simplemente ingresa allí algo como "wp-content/uploads/2013/05/Archivo.pdf" (sin las comillas) en lugar de "[file-1234]" y coloca el siguiente código en tu functions.php

function mycustom_cf_before_action(&$wpcf7_data) {
    global $mailcounter;
    $mailcounter = 0;
    if ((!empty($wpcf7_data->mail['attachments'])) and (!(0 === strpos($wpcf7_data->mail['attachments'], '['))) ) {
        global $cmail1;
        $cmail1 = '';
        $cmail1 = $wpcf7_data->mail['attachments'];
    }
    if ((!empty($wpcf7_data->mail_2['attachments'])) and (!(0 === strpos($wpcf7_data->mail_2['attachments'], '['))) ) {
        global $cmail2;
        $cmail2 = '';
        $cmail2 = $wpcf7_data->mail_2['attachments'];
    }
}
add_action('wpcf7_before_send_mail', 'mycustom_cf_before_action',1);

function mycustom_wpcf7_mail_components($components){
    global $cmail1;
    global $cmail2;
    global $mailcounter;

    if (($mailcounter == 0) and (!empty($cmail1)) and (empty($components['attachments']))) {
          $components['attachments'][] = $cmail1;
    }
    if (($mailcounter == 1) and (!empty($cmail2)) and (empty($components['attachments']))) {
          $components['attachments'][] = $cmail2;
    }
    $mailcounter = $mailcounter + 1;
    return $components;
}

add_filter( 'wpcf7_mail_components', 'mycustom_wpcf7_mail_components' );

La primera función verifica si hay adjuntos "estáticos". Es decir, cualquier cosa que no empiece con [ o esté vacío.

La segunda función agrega el adjunto estático al enviar. Intenté usar "uploaded_files" pero luego los adjuntos se eliminaban. Como la parte de Components es la misma para mail1 y mail2, tienes que contar de alguna manera. Por eso está $mailcounter. $cmail1 y $cmail2 son para llevar los enlaces a los adjuntos a la parte de components. CF7 ya no se preocupa por los datos originales del formulario de contacto en este punto, así que esta fue la única solución que vi.

3 may 2013 23:04:43
Comentarios

Esto parece no funcionar más en la versión 5.4. Sin embargo, puedes usar esto en su lugar add_filter( 'wpcf7_mail_components', function($components, $form = null, $mail = null) { $components['attachments'][] = 'PATH_TO_FILE.pdf'; return $components; }, 100, 3 );

Earlee Earlee
2 jun 2021 08:04:21
0
-3

Creo que este es el plugin al que se refiere: https://wordpress.org/plugins/email-before-download/

24 jul 2014 17:34:30