Een PDF on the fly generen met CF7

De PDF genereer je met 'wpcf7_before_send_mail' door gebruikmaking van bijvoorbeeld DOMPDF:

add_action('wpcf7_before_send_mail', 'ggsc_preprocess_mail',5);
function ggsc_preprocess_mail( $cf7 ) {
  $cf7_id = get_option('ggsc_cf7_id');
  if ($cf7->id == $cf7_id){
    /*
    * Laad de libraries
    */
    require_once(__DIR__ . "/lib/dompdf/dompdf_config.inc.php");
    /*
    * Haal het te gebruiken css bestand op die DOMPDF moet gebruiken om de PDF vorm te geven
    */
    $css = file_get_contents('/volledig/pad/naar/css');
    /*
    * Haal het veld op dat de informatie bevat die in de PDF moet worden geplaatst
    * Alle gegevens heb ik in de applicatie in een hidden formfield gekopieerd
    */
    $post_id = get_option('ggsc_cf7_config_fieldname');
    $str = $_POST[$post_id];
    /*
    * Filter escaped quotes en paden
    */
    $str = str_replace('\"', '"',$str);
    $str = str_replace(WP_PLUGIN_URL, WP_PLUGIN_DIR,$str);
    /*
    * Verwerk de overige formuliervelden (ik heb in de configuratie een selectie van te gebruiken velden opgenomen)
    */
    $fields = explode(',',get_option('ggsc_cf7_pdffields'));
    if(is_array($fields)) {
      $str .= '<div class="klantgegevens"><h2>Request info</h2>';
      foreach($fields as $field) {
        $str .= '<p>' . $field . ' - ' . $_POST[$field] . '</p>';
    }
      $str .= '</div>';
    }
    /*
    * Construeer nu de volledige HTML pagina en plaats de hierboven opgebouwde string en het CSS hierin
    */
    $html = '<html>';
    $html .= '<head><style>'.$css.'</style></head>';
    $html .= '<body>' . $str . '</body></html>';
    /*
    * Genereer de PDF
    */
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    file_put_contents('/volledig/pad/naar/pdf', $dompdf->output());
  }
}