WPFormsでカスタムパスワード検証を実装する

大文字、小文字、数字、記号の組み合わせを必須とする厳格なパスワードポリシーをWPFormsに適用したいですか?WPFormsに組み込まれているStrong Passwordオプションでは、これらの要件を厳密に実装することはできませんが、カスタムコードスニペットを使用してこれを実現することができます。

このチュートリアルでは、WPFormsにカスタムパスワードバリデーションを追加する方法を紹介します。

コード・スニペットの追加

カスタムパスワード検証を実装するには、サイトにカスタムコードスニペットを追加する必要があります。カスタムコードの追加についてヘルプが必要な場合は、チュートリアルの コードスニペットの追加.

以下のコード・スニペットをあなたのサイトに追加してください:

/**
 * Implement Custom Password Validation.
 *
 * @link https://wpforms.com/developers/implementing-custom-password-validation-in-wpforms
 *
 */
add_action('wpforms_process', 'custom_password_validation', 10, 3);
function custom_password_validation($fields, $entry, $form_data) {
    foreach ( $fields as $field_id => $field ) {
        // Check if this is the correct field (replace 100 with your actual field ID) and it's a password field
        if ( $field_id == 100 && $field['type'] === 'password' ) {
            $password = $field['value'];
            
            // Define the password validation pattern
            $uppercase = preg_match('@[A-Z]@', $password);
            $lowercase = preg_match('@[a-z]@', $password);
            $number    = preg_match('@[0-9]@', $password);
            $symbol    = preg_match('@[\W]@', $password);

            // Check if password meets all requirements
            if ( !$uppercase || !$lowercase || !$number || !$symbol ) {
                wpforms()->process->errors[$form_data['id']][$field_id] = esc_html__( 'Password must include at least one uppercase letter, one lowercase letter, one number, and one symbol.', 'plugin-domain' );
            }
        }
    }
}

スニペットのカスタマイズ

このスニペットは、あなたの特定のニーズに合わせて変更することができます:

  1. フィールドID:交換 100 での if ( $field_id == 100 && $field['type'] === 'password' ) { の行に、パスワード・フィールドの実際のIDを入力してください。フィールドIDを見つけるには、以下のガイドを参照してください。 フィールドIDの見つけ方.
  2. エラーメッセージ:のテキストを変更することでエラーメッセージをカスタマイズできます。 esc_html__() 関数である。
  3. パスワードの条件:パスワードの条件を変更したい場合は、以下のように正規表現を変更することができます。 preg_match() 関数を使用したり、必要に応じてチェックを追加・削除する。

スニペットを追加したら、パスワードバリデーションが期待通りに動作しているかフォームを徹底的にテストしてください。さまざまなパスワードの組み合わせでフォームを送信してみて、カスタムバリデーションが正しく実行されていることを確認してください。

これで完了です!これで WPForms にカスタムパスワードバリデーションが実装されました。これで、ユーザが特定の要件を満たす強力なパスワードを作成できるようになります。

フォームに表示されるバリデーションメッセージについてもっと知りたいですか?詳細については、バリデーションメッセージの変更に関するチュートリアルをご覧ください。