Contact Form 7 - Inviare un allegato al mittente?
Ho installato il plugin Contact Form 7 sulla mia istanza WordPress 3.2.1.
Ho configurato un modulo di contatto per permettere agli utenti di richiedere valutazioni.
Tutto funziona correttamente, ma speravo di poter inviare automaticamente un'email con allegata una brochure del prodotto quando inviano una richiesta.
Attualmente ho configurato in questo modo:
Ho provato a usare [file-691] dove 691 è l'ID del file caricato nella libreria media.
Entrambi i metodi non sembrano funzionare.
Qual è il modo corretto per ottenere questo risultato?

Per quanto ne so, la funzionalità che stai cercando di utilizzare non è pensata per essere usata in questo modo. In realtà è progettata per consentire a chi compila il form di caricare un file che viene inviato insieme al messaggio email.
Non credo che questa funzionalità sia disponibile per Contact Form 7

Scusate il mio inglese approssimativo e le mie ancora peggiori competenze in PHP.
Potete usare email-before-download ma... non sono riuscito a farlo funzionare come volevo.
Ho provato un po' di codice e penso che questo funzioni. Non è il modo più elegante, ma potete usare il link al file nel campo degli allegati nell'interfaccia di amministrazione. Basta inserire qualcosa come "wp-content/uploads/2013/05/File.pdf" (senza le virgolette) invece di "[file-1234]" e inserire il seguente codice nel vostro 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 prima funzione verifica se ci sono allegati "statici", cioè qualsiasi cosa che non inizi con [
o sia vuota
La seconda funzione aggiunge l'allegato statico durante l'invio. Ho provato a usare "uploaded_files" ma poi gli allegati venivano cancellati. Dato che la parte Components è la stessa per mail1 e mail2, bisogna in qualche modo contare. Ecco il motivo di $mailcounter
. $cmail1
e $cmail2
servono per inserire i link agli allegati nella parte components. CF7 a questo punto non si preoccupa più dei dati originali del form di contatto, quindi questa era l'unica soluzione che ho visto in questo momento.

Credo che questo sia il plugin a cui si fa riferimento: https://wordpress.org/plugins/email-before-download/
