Inviare dinamicamente un PDF allegato a un post con Contact Form 7

24 gen 2015, 19:56:01
Visualizzazioni: 16.7K
Voti: 1

Sto cercando di inviare un PDF dinamico allegato a un post tramite il plugin Contact Form 7.

Presumo di dover usare l'hook:

add_action('wpcf7_before_send_mail','send_pdf');

Dato che è l'hook che ho visto utilizzato più frequentemente cercando una soluzione.

Ecco cosa ho provato, inizialmente con un PDF di test usando un URL assoluto:

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

Se ho capito bene, se l'ID del modulo di contatto è corretto e ho [pdf] nel campo "file attachment" di mail2, allora quel PDF dovrebbe essere inviato via email alla persona che ha compilato il modulo?

Nel mio caso però non funziona, ricevo l'email ma senza allegato.

C'è qualcosa che mi sfugge o conoscete un altro metodo che funziona?

0
Tutte le risposte alla domanda 1
10

Prova invece questo. C'è stata una riorganizzazione interna in 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');
    }
}

Questo dovrebbe funzionare.

24 gen 2015 20:41:57
Commenti

Sei una persona fantastica, funziona alla grande. Oh, potresti voler aggiungere una barra prima di test.pdf, era un errore di battitura da parte mia. Potrebbe confondere le persone che lo usano :)

UzumakiDev UzumakiDev
24 gen 2015 20:55:34

Ottima osservazione sull'errore di battitura. Sono contento che funzioni!

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

Non credo tu sappia perché quell'URL test.pdf funzionasse mentre un URL come /wp-content/uploads/2015/01/test.pdf no? C'entra qualcosa con i permessi del plugin?

UzumakiDev UzumakiDev
24 gen 2015 22:13:56

Stai codificando manualmente l'URL?

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

Penso che ti serva un percorso assoluto. Potresti provare get_home_path(); Non posso testare adesso ma fammi sapere se funziona.

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

Vedi anche https://wordpress.org/support/topic/sending-an-attachment-using-contact-form-7 mi è stato molto utile

jmarceli jmarceli
27 nov 2015 16:06:52

Non funziona per me. L'email viene inviata senza problemi, ma non c'è alcun allegato

adamj adamj
26 apr 2016 08:21:20

Poiché questa sembra essere una risposta accettata, perché ricevo l'errore: Uncaught Error: Call to private method WPCF7_Submission::add_uploaded_file()?

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

Chris Pink, questo è cambiato con l'ultimo aggiornamento di CF7 - Sto cercando di trovare un nuovo metodo in questo momento. :-(

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

@ChrisPink Devi combinare questa funzionalità con questa: https://stackoverflow.com/a/48189650/2757809

Tony Djukic Tony Djukic
5 mar 2021 18:58:50
Mostra i restanti 5 commenti