web-dev-qa-db-fra.com

Joindre un pdf au formulaire de contact 7 par e-mail via functions.php

J'essaie de joindre manuellement des fichiers pdf à un courrier électronique et j'ai effectué des recherches sur le sujet et constaté que code :

add_action('wpcf7_before_send_mail','send_pdf');

function send_pdf( $cf7 ) {
    $id = $cf7->id();
    if ($id==2399){
        $submission = WPCF7_Submission::get_instance();
        $submission->add_uploaded_file('pdf', get_template_directory().'/pdf/test.pdf');
    }
}

La chose étrange est qu'après l'envoi du courrier électronique, le fichier et le dossier sont supprimés mais rien n'est attaché. J'utilise un thème et un thème enfant, et le dossier est placé dans le répertoire du thème principal. Des idées?

1
cookiemosnter

J'ai trouvé ce qui manque dans le code. Vous devez aussi ajouter ceci:

add_filter( 'wpcf7_mail_components', 'mycustom_wpcf7_mail_components' );

function mycustom_wpcf7_mail_components( $components ) {
    $components['attachments'][] = get_template_directory().'/pdf/test.pdf';

    return $components;
}

Maintenant, tout fonctionne correctement et le fichier est joint à un courrier électronique sans qu'il soit nécessaire d'ajouter des champs dans le formulaire de contact.

2
cookiemosnter