コーディング

ContactForm7でメール送信時にファイルを添付する

  • このエントリーをはてなブックマークに追加

こんばんわ

制作部カワサキです。

自分の中では5月6月はイベント盛りだくさんで怒涛の2カ月が無事終わりました。

 

以前、ContactFormで、送信時に本文を書き換える園を書きましたが、たまに別件で検索してるとたまに自分のブログが引っかかった来たので

ContactForm7のメール本文を送信時に出力する

その時に調べてた、送信時に添付ファイルを付ける方法です。

 

今回も、Actionは「wpcf7_before_send_mail」を使って実現できます。

//**********************************************************************************************************
// CONTACT FORM7で動的に作成したファイルを送信時に添付する
//**********************************************************************************************************
add_action(“wpcf7_before_send_mail”, “wpcf7_do_something”);
function wpcf7_do_something($WPCF7_ContactForm){
$wpcf7 = WPCF7_ContactForm::get_current();
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
if (empty($data))
return;

$mail = $wpcf7->prop(‘mail’);

//フォームにhiddenで「attach_pdf」を作成し、送信前に作成したPDFファイル名を格納しておく
$attach_pdf = $data[‘attach_pdf’];

//ここでアップロードされているファイルを指定!!!!
$mail[‘attachments’] = ‘themes/sample/pdf/’.$attach_pdf;

$wpcf7->set_properties(array(
“mail” => $mail
));

return $wpcf7;
}
}

 

今回は.メール入力時に添付するPDFファイル名を、hhidden項目の「name=”attach_pdf”」にJQueryでセットしてます。

前半部分は、前回の記述と変わりません。

$mail[‘attachments’]にファイルをセット(この時ファイルのパスに注意)して完了です。

判ってしまえば簡単です。

  • このエントリーをはてなブックマークに追加