プラグインWPFormsのwpforms_mailcheck_domainsフィルタの使用方法・解説

概要

wpforms_mailcheck_domains フィルタは、WPForms プラグインにおけるメールアドレスのドメインチェックに関連する機能を拡張するためのフックです。このフィルタを使用することで、特定のドメインをホワイトリストやブラックリストに追加することができ、ユーザーがフォームを送信する際のメールアドレスの検証にカスタマイズを加えることができます。

よく使われる機能

  1. 特定のドメインをホワイトリスト化してメール送信を許可する。
  2. 不正なドメインをブラックリストに追加し、メール送信を拒否する。
  3. メールアドレスのドメインを動的に変更する。
  4. サイト固有のドメインチェックルールを実装する。
  5. 他のプラグインやサービスとの統合時にメールチェックをカスタマイズする。
  6. ユーザーからのフィードバックに基づいてメールアドレスの検証を調整する。

構文

add_filter('wpforms_mailcheck_domains', 'custom_mailcheck_domains');
function custom_mailcheck_domains($domains) {
    // カスタマイズコード
    return $domains;
}

パラメータ

  • $domains: 現在のドメインの配列。

戻り値

  • 変更されたドメインの配列。

バージョン情報

  • WPForms: 1.4.0 以降
  • WordPress: 5.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_filter('wpforms_mailcheck_domains', 'allow_custom_domains');
function allow_custom_domains($domains) {
    $domains[] = 'example.com';
    return $domains;
}

このサンプルコードは、example.com ドメインをホワイトリストに追加し、このドメインからのメールアドレスが許可されるようにします。

サンプルコード 2

add_filter('wpforms_mailcheck_domains', 'block_some_domains');
function block_some_domains($domains) {
    $domains = array_diff($domains, ['spam.com', 'phishing.com']);
    return $domains;
}

このサンプルコードは、spam.comphishing.com というドメインをブラックリストから除外し、これらのドメインからのメールアドレスを拒否します。

サンプルコード 3

add_filter('wpforms_mailcheck_domains', 'dynamic_domain_whitelist');
function dynamic_domain_whitelist($domains) {
    if (is_user_logged_in()) {
        $user_domain = wp_get_current_user()->user_email;
        $domains[] = substr(strrchr($user_domain, "@"), 1);
    }
    return $domains;
}

このサンプルコードは、ログインしているユーザーのメールドメインを動的にホワイトリストに追加します。

サンプルコード 4

add_filter('wpforms_mailcheck_domains', 'custom_validation_message');
function custom_validation_message($domains) {
    add_filter('wpforms_process_validate', function($fields, $form_data) {
        if (!in_array($fields['email']['value'], $domains)) {
            wpforms()->process->errors['email'] = 'Invalid email domain.';
        }
    });
    return $domains;
}

このサンプルコードは、登録されたドメイン以外からのメールアドレスが送信された場合、エラーメッセージを表示します。

サンプルコード 5

add_filter('wpforms_mailcheck_domains', 'restrict_domain_for_roles');
function restrict_domain_for_roles($domains) {
    if (current_user_can('subscriber')) {
        $domains = ['subdomain.com'];
    }
    return $domains;
}

このサンプルコードは、サブスクリバーロールのユーザーに対して特定のドメイン(subdomain.com)のみを許可します。

以上のサンプルコードは、著作権フリーの内容であり、他者の著作物を引用することはありません。

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


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