スタッフのつぶやき

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

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

こんにちわ

制作部 カワサキです。

 

WPでConctactForm7を使用している時に

送信メールの内容を、可変で作成したい時の方法になります。

メール送信時に本文を書き換えるには「function.php」にアクションを追加して、

変更する関数を呼び出せば可能です。

add_action( ‘wpcf7_before_send_mail’, ‘mailtext_edit’);

 

これを追加して

関数「mailtext_edit()」を定義してあげてください。

(アクションで呼び出される名前と同じなら関数名なんでもいいです。)

public function mailtext_edit( $WPCF7_ContactForm ){

$wpcf7 = WPCF7_ContactForm::get_current(); //wpcf7で設定したデータを取得する
$submission = WPCF7_Submission::get_instance();

if ( $submission ){
$formdata = $submission->get_posted_data(); //ここでPOSTされたデータを取得する

//メールの本文を置き換える
$mail = $wpcf7->prop( ‘mail’ ); //メール送信部分を取得

$body_text = $formdata[‘your_name’].’ 様’.”\n”;
$body_text .= ‘━━━今回送信いただいた情報は以下のとおりです━━━’.”\n”;
$body_text .= “\n”;
$body_text .= ‘[お名前]’.”\n”;
$body_text .= $formdata[‘your_name’].”\n”;
$body_text .= “\n”;
$body_text .= ‘[ふりがな(ひらがな)]’.”\n”;
$body_text .= $formdata[‘your_name_kana’].”\n”;
$body_text .= “\n”;
$body_text .= ‘[メールアドレス]’.”\n”;
$body_text .= $formdata[‘email’].”\n”;
$body_text .= “\n”;
$body_text .= ‘━━━━━━━━━━━━━━━━━━━’.”\n”;
$body_text .= “\n”;
$body_text .= ‘このメールに心当たりのない場合は、お手数ですが’.”\n”;
$body_text .= ‘下記連絡先までお問い合わせください。’.”\n”;
$body_text .= “\n”;
$body_text .= ‘━━━━━━━━━━━━━━━━━━━’.”\n”;

$mail[‘body’] = $body_text;

//↓で置き換える
$wpcf7->set_properties(array(
“mail” => $mail
));
}
return $wpcf7;

}

後は、上記の関数内で$body_textを作る時に、条件分岐すれば可変のメールが送信可能となります。

以上、思ってるより簡単に実装できます。

 

$wpcf7をvar_dumpで中身見てみると、propの中身色々あって面白いです。

興味があれば、一度見てみて下さい。

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