Skip to content

Instantly share code, notes, and snippets.

@ianhampton
Last active January 3, 2024 14:50
Show Gist options
  • Save ianhampton/eee8f8ea1a6280db8bbae3944c07a451 to your computer and use it in GitHub Desktop.
Save ianhampton/eee8f8ea1a6280db8bbae3944c07a451 to your computer and use it in GitHub Desktop.
Dynamically add file attachments to Contact Form 7 emails from a custom field
<?php
/* Dynamically add file attachments to Contact Form 7 emails from a Wordpress custom field.
* Custom field is 'case-pdf' in the example.
*/
add_action('wpcf7_before_send_mail', 'wpcf7_add_attachment');
function wpcf7_add_attachment($contact_form) {
global $_POST;
$submission = WPCF7_Submission::get_instance();
if ( $submission && !empty($_POST['case-pdf']) ) {
$mail = $contact_form->prop('mail');
$mail['attachments'] .= $_POST['case-pdf'];
$contact_form->set_properties(array('mail' => $mail));
}
}
@fsanterva
Copy link

Hello,

What's custom fiels do you use ? i tried with this input :

[dynamichidden PDF id:PDF "uploads/pdf/Full_lighting_price_list.pdf"]

Not working :-(

Tried this code too :

function send_pdf( $wpcf7 ) {
    $id = $wpcf7->id();
	if ($id==215){
		$uploads = wp_upload_dir();
		define ('MY_FILE_PATH',$uploads['path'].'/pdf/');
		$copy_to_send=MY_FILE_PATH.'Full_lighting_price_list.pdf';	

		$mail = $wpcf7->prop('mail');
		$mail['attachments'] = $copy_to_send;
		
 $wpcf7->set_properties(array(
	    "mail" => $mail
));
	}
}
add_action('wpcf7_before_send_mail','send_pdf', 100);

Can you help me please ?

BRO: you're a legend, more blessings to you and you're family :D could you explain in details what those "$mail = $wpcf7->prop('mail');" & "$wpcf7->set_properties(array( "mail" => $mail ));" does, where you got this method, my feature worked, this is all I need, you're awesome <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment