概要
wpcf7_flamingo_submit_if
アクションは、WordPress プラグイン「Contact Form 7」と「Flamingo」との連携を行う際に使用されます。このアクションを利用することで、特定の条件を元にフォームの送信を制御したり、送信後の処理をカスタマイズすることが可能です。以下は、よく使われる機能の例です。
- 特定のフィールドが空でない場合のみ保存する
- 送信時にカスタムスクリプトを実行する
- 特定の条件が満たされたときだけメール通知を送る
- フォームの入力内容をフィルタリングする
- ユーザーの役割に応じて送信内容を変更する
- 特定のパラメータに基づいてリダイレクトを行う
構文
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']);
}
このコードは、送信されたデータに対してフィルタリング処理を行います。