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; } }
ってな感じで変更することができる。なので動的に変更しなければならない場合に役立つ。