Trimite dinamic un PDF atașat la un post folosind Contact Form 7
Încerc să trimit un PDF dinamic care este atașat la un post prin intermediul plugin-ului Contact Form 7.
Presupun că trebuie să folosesc hook-ul:
add_action('wpcf7_before_send_mail','send_pdf');
Așa cum am văzut că este folosit cel mai des atunci când am căutat o soluție.
Iată ce am încercat, am pornit cu un PDF de test cu un URL absolut:
function send_pdf( $cf7 ) {
if ($cf7->id==741){
$cf7->uploaded_files = array ( 'pdf' => get_template_directory().'/test.pdf' );
}
}
Dacă am înțeles corect, dacă ID-ul formularului de contact este corect, și am [pdf]
în câmpul "file attachment" din mail2, atunci acel PDF ar trebui să fie trimis prin email persoanei care a completat detaliile?
În cazul meu însă, acest lucru nu funcționează - primesc email-ul dar fără atașament.
Am omis ceva sau cunoașteți altă metodă care funcționează?

Încearcă asta în schimb. A fost o restructurare internă în 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');
}
}
Ar trebui să funcționeze.

Frumoase persoană, funcționează perfect. Ah, poate ai vrea să adaugi o bară oblică înainte de test.pdf, a fost o greșeală de tipar din partea mea. S-ar putea să încurce oamenii care o folosesc :)

Bună observație cu greșeala de tipar. Mă bucur că funcționează!

Nu crezi că știi de ce a funcționat URL-ul acela test.pdf dar un URL precum /wp-content/uploads/2015/01/test.pdf nu funcționează? Are legătură cu permisiunile pluginului?

Cred că ai nevoie de o cale absolută. Poți încerca get_home_path(); Nu pot testa acum, dar dă-mi de știre dacă funcționează.

Vezi și https://wordpress.org/support/topic/sending-an-attachment-using-contact-form-7 m-a ajutat foarte mult

Nu funcționează pentru mine. Trimite emailul fără probleme, dar nu este atașat nimic în el.

Deoarece acesta pare a fi un răspuns acceptat, de ce aș primi eroarea: Uncaught Error: Call to private method WPCF7_Submission::add_uploaded_file()
?

Chris Pink, acest lucru s-a schimbat cu ultima actualizare CF7 - încerc să găsesc o nouă metodă chiar acum. :-(

@ChrisPink Trebuie să combinați această funcționalitate cu aceasta: https://stackoverflow.com/a/48189650/2757809
