Click here to Skip to main content
15,895,011 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have been following several topics on wordpress.org about saving the data submitted in Contact Form 7 and sending it to the the submitter as a PDF attachment.

https://wordpress.org/support/topic/convert-pdf-file

Exporting form results from Contact form 7 to PDF (fPDF)

Im using Kory's php in my functions and have uploaded fpdf to me theme file in a folder called fpdf plus added in [attachments] to my contact form in wordpress admin.

My error is that the contact form doesn't submit. Just loads. Any ideas?

My Form - http://www.mikeandtom.co.uk/ctest

The php error noted was originally: 'FPDF error: Undefined font: times-roman B' - research on this revealed the font folder should be defined:

PHP
define('FPDF_FONTPATH',get_template_directory().'fpdf/font/'); define ('FPDF_PATH',get_template_directory().'/fpdf/');
require(FPDF_PATH.'fpdf.php');


ALTHOUGH THIS THROWS UP A 'could not define font definition file' error

PHP
add_action('wpcf7_before_send_mail', 'wpcf7_update_email_body');
function wpcf7_update_email_body($contact_form) {

$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
/* DEFINE CONSTANT AND GET FPDF CLASSES */
define ('FPDF_PATH',get_template_directory().'/fpdf/'); // MAKE SURE THIS POINTS      TO THE DIRECTORY IN YOUR THEME FOLDER THAT HAS FPDF.PHP
require(FPDF_PATH.'fpdf.php');

$posted_data = $submission->get_posted_data();
// SAVE FORM FIELD DATA AS VARIABLES
$name = $posted_data["your-name"];

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Times','B',16);
$pdf->Write(5,$name);
$pdf->Output(FPDF_PATH.'test.pdf', 'F'); // OUTPUT THE NEW PDF INTO THE SAME   DIRECTORY DEFINED ABOVE

}
}

add_filter( 'wpcf7_mail_components', 'mycustom_wpcf7_mail_components' );
function mycustom_wpcf7_mail_components($components){
if (empty($components['attachments'])) {
$components['attachments'] = array(FPDF_PATH .'test.pdf'); // ATTACH THE NEW PDF    THAT WAS SAVED ABOVE
}
return $components;
}
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900