Help us understand the problem. What is going on with this article?

Contact Form 7 の独自フック一覧

WordPress に問い合わせフォームを追加するプラグイン Contact Form 7 は、WordPress 本体と同じ方法で多数のフックを提供しています。人気のプラグインですが残念ながら資料があまりなかったので、調べてみました。その内容を紹介したいと思います。

なお、実際に動作させて確認したのは一部分で、大部分はソースの拾い読みからの推測になります。間違っている部分がありましたらコメント頂けるとありがたいです。

検証環境

以下の環境で調査しました。

ソフトウェア バージョン
PHP PHP 7.2.21
WordPress 5.2.2
Contact Form 7 5.1.4

アクションフック一覧

名称 概要
wpcf7_admin_footer 管理画面のフッター出力時
wpcf7_admin_init 管理画面へのアクセス時
wpcf7_admin_load 管理サブメニューの設定後
wpcf7_admin_menu 管理メニューの設定前
wpcf7_admin_misc_pub_section 追加のペインの出力時
wpcf7_admin_notices 管理画面に通知を表示する時
wpcf7_admin_warnings 管理画面に警告を表示する時
wpcf7_after_create 管理画面でフォームの設定を作成した後
wpcf7_after_flamingo Flamingo との連携で利用する
wpcf7_after_save 保存処理の後
wpcf7_after_update 管理画面でフォームの設定を更新した後
wpcf7_before_send_mail メールの送信前
wpcf7_config_validator_validate 管理画面の設定項目のバリデーションチェック中
wpcf7_contact_form WPCF7_ContactForm クラスオブジェクトの構築後
wpcf7_enqueue_scripts スクリプトのエンキュー時
wpcf7_enqueue_styles スタイスリートのエンキュー時
wpcf7_init 初期化時
wpcf7_mail_failed メール送信の失敗時
wpcf7_mail_sent メール送信の成功時
wpcf7_post_edit_form_tag フォームの設定用フォームの<form>タグ出力時
wpcf7_save_contact_form フォームの設定を保存する前
wpcf7_submit フォーム送信時
wpcf7_upgrade Contact Form 7 のアップデート時

フィルターフック一覧

名称 概要
wpcf7_acceptance フォームの受け入れを許可するかどうかを返す
wpcf7_additional_mail 送信先メールアドレスを追加する
wpcf7_admin_menu_change_notice メニューにバッチで表示する通知の数を設定する
wpcf7_ajax_json_echo REST API で利用する
wpcf7_ajax_onload REST API で利用する
wpcf7_akismet_comment_check akismet がコメントをスパムと判断した時の処理を追加する
wpcf7_autop_or_not WPCF7_AUTOP 定数を上書きする
wpcf7_captcha_url キャプチャの URL を上書きする
wpcf7_collect_mail_tags 独自のメールタグを設定する
wpcf7_constant_contact_contact_post_request_builder Constant Contact との連携で利用する
wpcf7_constant_contact_submit Constant Contact との連携で利用する
wpcf7_contact_form_default_pack フォームのテンプレートを加工する
wpcf7_contact_form_properties フォームのプロパティを拡張する
wpcf7_contact_form_shortcode 投稿に埋め込むショートコードを加工する
wpcf7_copy フォームのコピーを加工する
wpcf7_default_template 各設定項目のデフォルト値を加工する
wpcf7_display_message メッセージの出力を加工する
wpcf7_editor_panels 管理画面のパネル(タブ)を加工する
wpcf7_flamingo_get_value Flamingo との連携で利用する
wpcf7_flamingo_submit_if Flamingo との連携で利用する
wpcf7_form_action_url <form>タグの action 属性を加工する
wpcf7_form_autocomplete <form>タグの autocomplete 属性を加工する
wpcf7_form_class_attr <form>タグの class 属性を加工する
wpcf7_form_elements <form>要素に要素を加える
wpcf7_form_enctype <form>タグの enctype 属性を加工する
wpcf7_form_hidden_fields <form>要素に <input type="hidden"> の要素を加える
wpcf7_form_id_attr <form>タグの class 属性を加工する
wpcf7_form_name_attr <form>タグの name 属性を加工する
wpcf7_form_novalidate <from>タグの novalidate 属性を加工する
wpcf7_form_response_output 応答メッセージの出力を加工する
wpcf7_form_tag タグの値を加工する
wpcf7_form_tag_data_option 独自タグの選択肢を指定する
wpcf7_is_date 入力文字列が日付かどうかを返す
wpcf7_is_email 入力文字列がメールアドレスかどうかを返す
wpcf7_is_number 入力文字列が数値かどうかを返す
wpcf7_is_tel 入力文字列が電話番号かどうかを返す
wpcf7_is_url 入力文字列が URL かどうかを返す
wpcf7_load_css WPCF7_LOAD_CSS 定数を上書きする
wpcf7_load_js WPCF7_LOAD_JS 定数を上書きする
wpcf7_log_remote_request ログ出力内容を加工する
wpcf7_mail_components 送信するメールの内容を加工する
wpcf7_mail_html_footer HTML メールのフッタを加工する
wpcf7_mail_html_header HTML メールのヘツダを加工する
wpcf7_mail_tag_replaced メールに出力する要素を加工する
wpcf7_mail_tag_replaced_{$type} メールに出力する要素を加工する(type 属性単位)
wpcf7_map_meta_cap フォームの編集権限を上書きする
wpcf7_messages メッセージ文字列を加工する
wpcf7_posted_data 入力された要素を加工する
wpcf7_posted_data_{$type} 入力された要素を加工する(type 属性単位)
wpcf7_recaptcha_actions reCAPTCHA で利用する
wpcf7_recaptcha_secret reCAPTCHA のシークレットキーを上書きする
wpcf7_recaptcha_sitekey reCAPTCHA のサイトキーを上書きする
wpcf7_recaptcha_threshold reCAPTCHA のスパム判定の重み付けを上書きする
wpcf7_recaptcha_verify_response reCAPTCHA で人間による投稿かどうかの判定を上書きする
wpcf7_remote_ip_addr リモートホストの IP アドレスを上書きする
wpcf7_skip_mail メール送信を省略するかどうかのフラグを上書きする
wpcf7_spam スパム判定の結果を上書きする
wpcf7_special_mail_tags 特別なメールタグの値を生成する
wpcf7_submission_is_blacklisted ブラックリストを上書きする
wpcf7_subscribers_only_notice ログインユーザーのみに許可されたフォームが利用された時の警告文を上書きする
wpcf7_support_html5 html5 をサポートするかどうかを指定する
wpcf7_support_html5_fallback html5 用のフォールバック機能を有効にするかどうかを指定する
wpcf7_upload_dir アップロードディレクトリ情報を上書きする
wpcf7_upload_file_name アップロードされたファイルの名前を上書きする
wpcf7_use_really_simple_captcha WPCF7_USE_REALLY_SIMPLE_CAPTCHA 定数を上書きする
wpcf7_validate バリデーションチェックの結果を上書きする
wpcf7_validate_configuration WPCF7_VALIDATE_CONFIGURATION 定数を上書きする
wpcf7_validate_{$type}" バリデーションチェックの結果を上書きする(type 属性単位)
wpcf7_validation_error バリデーションチェックエラーのメッセージを上書きする
wpcf7_verify_nonce WPCF7_VERIFY_NONCE 定数を上書きする

最後に

Contact Form 7 を機能拡張するプラグインが必要になり、今回調査しました。色々と面白いフックもあり、適切に使いこなしていけば Contact Form 7 との親和性の高いプラグインを作れそうですね。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away