contactform7でメール送信内容に追加したり、引いたりしたい場合があるかと思います。
今回なそんな場面に遭遇しましたのでhook方法を考えてみました。
まずは、「wpcf7_before_send_mail」でhookを掛ける
function.php
add_action("wpcf7_before_send_mail", "wpcf7_do_something");
function wpcf7_do_something($WPCF7_ContactForm)
{
~~~ ここに処理内容 ~~~
return $wpcf7;
}
これでまずはメール送信時のフックが完成!!
じゃあ、何をどうしてっていうところで例えばメール本文を置き換える場合は
add_action("wpcf7_before_send_mail", "wpcf7_do_something");
function wpcf7_do_something($WPCF7_ContactForm)
{
if($WPCF7_ContactForm->id() == コンタクトフォームのID)
{
$wpcf7 = WPCF7_ContactForm::get_current();//wpcf7で設定したデータを取得する
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();//ここでPOSTされたデータを取得する
//メールの本文を置き換える場合:例
$mail = $wpcf7->prop('mail');//メール送信部分を取得
$mail['body'] ="おきたかえた本文";//本文の置き換えの文章
↓で置き換える
$wpcf7->set_properties(array(
"mail" => $mail
));
}
return $wpcf7;
}
}
ってな感じで変更することができる。なので動的に変更しなければならない場合に役立つ。