Trimite dinamic un PDF atașat la un post folosind Contact Form 7

24 ian. 2015, 19:56:01
Vizualizări: 16.7K
Voturi: 1

Î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ă?

0
Toate răspunsurile la întrebare 1
10

Î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.

24 ian. 2015 20:41:57
Comentarii

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

UzumakiDev UzumakiDev
24 ian. 2015 20:55:34

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

WordPress Mike WordPress Mike
24 ian. 2015 20:58:52

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?

UzumakiDev UzumakiDev
24 ian. 2015 22:13:56

Introduci manual URL-ul în cod?

WordPress Mike WordPress Mike
25 ian. 2015 22:54:13

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ă.

WordPress Mike WordPress Mike
25 ian. 2015 23:33:38

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

jmarceli jmarceli
27 nov. 2015 16:06:52

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

adamj adamj
26 apr. 2016 08:21:20

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 Chris Pink
3 mar. 2021 10:28:34

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

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

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

Tony Djukic Tony Djukic
5 mar. 2021 18:58:50
Arată celelalte 5 comentarii