WPFormsでのカスタムパスワード検証の実装

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

このチュートリアルでは、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. フィールドIDif ( $field_id == 100 && $field['type'] === 'password' ) {行の100を実際のパスワードフィールドのIDに置き換えてください。フィールドIDを見つけるには、フィールドIDの見つけ方ガイドを参照してください。
  2. エラーメッセージesc_html__()関数のテキストを変更することで、エラーメッセージをカスタマイズできます。
  3. パスワード要件:パスワード要件を変更したい場合は、preg_match()関数の正規表現を変更するか、必要に応じてチェックを追加/削除できます。

スニペットを追加したら、パスワード検証が期待どおりに機能していることを確認するために、フォームを徹底的にテストしてください。さまざまなパスワードの組み合わせでフォームを送信して、カスタム検証が正しく強制されていることを確認してください。

これで完了です!WPFormsにカスタムパスワード検証が実装されました。これにより、ユーザーは特定の要件を満たす強力なパスワードを作成できます。

フォームに表示される検証メッセージについて、さらに詳しく知りたいですか?詳細については、検証メッセージの変更に関するチュートリアルをご覧ください。