Inviare dinamicamente un PDF allegato a un post con Contact Form 7
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?

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.

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 :)

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

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?

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

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

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

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

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

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