Wordpress CF7 v3.9

Een on the fly generated PDF verzenden met CF7

het probleem

Met CF7 een PDF document dat on the fly wordt gegenereerd op basis van keuzes in een formulier moet als bijlage aan een e-mail worden toegevoegd.

De documentatie is over het algemeen erg summier en op fora tref je wel vragen aan maar zelden adequate antwoorden. De antwoorden die je vindt zijn vaak verouderd.

In oudere versies van CF7 haalde de CF7 hook 'wpcf7_before_send_mail' het CF7 object by reference binnen. Dit object bevatte alle data die het met een callback functie makkelijk konden worden gemanipuleerd. Vanaf V3.9 werkt dat niet meer maar dat is alleen proefondervindelijk vast te stellen. Het object is uitgekleed en wordt niet langer by reference binnengehaald.

Zoals gezegd is de documentatie bij CF7 erg summier. Al zoekend vind je her en der verspreid over het internet allerlei informatie over hooks waarmee in het formulier kan worden ingegrepen maar nergens is er een overzicht te vinden van hooks en wat ze doen.

de oplossing

Na lang zoeken stuitte ik bij toeval op de hook 'wpcf7_mail_components'. Een pagina waarop werd uitgelegd hoe een PDF bestand aan de mail kan worden toegevoegd. Precies wat ik nodig had! Zo werkt het:

add_filter( 'wpcf7_mail_components', 'ggsc_wpcf7_mail_components' );
function ggsc_wpcf7_mail_components( $components ) {
  $components['attachments'][] = '/volledig/pad/naar/pdf;
  return $components;
}

dat is alles, maar vind het maar eens.