djcomkato
メンバー
2 years前の投稿 #
Contact Form 7 のフィルターフックについて要望です。
メール本文やフォームに対してフィルター出来ると便利だと思い、ソースを追ってみましたが見つかりませんでした。
実装されてないようであれば、機能追加頂ければと思ったのですが、如何でしょうか?
これらのフィルターがあれば、
・全てのフォームで、メール文頭のあいさつ文や署名を常に挿入する
・CF7では生成が難しいformタグを、別functionで生成して挿入
などの活用が可能かと考えております。
出来れば「フォーム」「メール1」「メール2」の3つ別々にフック出来れば、使いやすいと思います。
ご検討のほどよろしくお願い致します。
(Contact Form 7 2.0.6)
保存時、出力時にそれぞれ利用可能なフックが用意されています。contact-form-7/includes/classes.php のソースコードを参照してください。
また、メール送信には wp_mail() を使うので、その内部で用意されているさまざまなフックを使って実際に送信されるメールのヘッダや内容に手を加えることが可能です。
shotets
メンバー
2 years前の投稿 #
classes.php にメール文にフックできるところがありますね。
do_action_ref_array( 'wpcf7_before_send_mail', array( &$this ) );
これを利用すれば、以下のようにメールにフックできるんじゃないですかね。
// メール送信直前にフック
add_action( 'wpcf7_before_send_mail', 'my_action' );
function my_action( $cf7 )
{
// フォームID
$id = $cf7->id;
// 入力されたデータ
$post = $cf7->posted_data;
// タイトル
$title = $cf7->title;
// メール
$mail = $cf7->mail;
// メール2
$mail_2 = $cf7->mail_2;
// メッセージ
$messages = $cf7->messages;
}