プラグインContact Form 7のwpcf7_flamingo_submit_ifアクションの使用方法・解説

概要

wpcf7_flamingo_submit_if アクションは、WordPress プラグイン「Contact Form 7」と「Flamingo」との連携を行う際に使用されます。このアクションを利用することで、特定の条件を元にフォームの送信を制御したり、送信後の処理をカスタマイズすることが可能です。以下は、よく使われる機能の例です。

  1. 特定のフィールドが空でない場合のみ保存する
  2. 送信時にカスタムスクリプトを実行する
  3. 特定の条件が満たされたときだけメール通知を送る
  4. フォームの入力内容をフィルタリングする
  5. ユーザーの役割に応じて送信内容を変更する
  6. 特定のパラメータに基づいてリダイレクトを行う

構文

do_action('wpcf7_flamingo_submit_if', $contact_form, $submission);

パラメータ

  • $contact_form: Contact Form 7 のインスタンス
  • $submission: フォームの送信データを含むオブジェクト

戻り値

このアクション自体は戻り値を返さない最中のアクションです。

使用可能プラグインとバージョン

  • Contact Form 7: バージョン5.0以降
  • Flamingo: バージョン1.0以降

使用可能な WordPress のバージョン

WordPress 4.0以降

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプル1: フィールドが空でない場合のみ送信

add_action('wpcf7_flamingo_submit_if', 'custom_submit_action', 10, 2);
function custom_submit_action($contact_form, $submission) {
    $data = $submission->get_posted_data();
    if (empty($data['your_field'])) {
        // フィールドが空なら送信を中止
        return false;
    }
}

このコードは、特定のフィールドが空でない場合のみ送信を許可します。

サンプル2: メール通知を特定条件で変更

add_action('wpcf7_flamingo_submit_if', 'change_email_notification', 10, 2);
function change_email_notification($contact_form, $submission) {
    $data = $submission->get_posted_data();
    if ($data['user_role'] == 'administrator') {
        // 管理者に特別なメールを送信
        // 配送処理を書く
    }
}

このコードは、送信者の役割が管理者である場合に特別なメールを送信します。

サンプル3: カスタム処理を追加

add_action('wpcf7_flamingo_submit_if', 'custom_processing', 10, 2);
function custom_processing($contact_form, $submission) {
    // カスタム処理をここに追加
    error_log("フォームが送信されました。");
}

このスクリプトは、フォームが送信されるたびにエラーログにメッセージを追加します。

サンプル4: 特定の条件でリダイレクト

add_action('wpcf7_flamingo_submit_if', 'conditional_redirect', 10, 2);
function conditional_redirect($contact_form, $submission) {
    $data = $submission->get_posted_data();
    if ($data['redirect'] == 'yes') {
        wp_redirect('https://example.com/thank-you');
        exit;
    }
}

このコードは、送信者が特定の条件を満たした場合に特定のページにリダイレクトします。

サンプル5: データのフィルタリング

add_action('wpcf7_flamingo_submit_if', 'filter_form_data', 10, 2);
function filter_form_data($contact_form, $submission) {
    $data = $submission->get_posted_data();
    // データをフィルタリング
    $data['your_field'] = sanitize_text_field($data['your_field']);
}

このコードは、送信されたデータに対してフィルタリング処理を行います。

この関数について質問する


上の計算式の答えを入力してください