大文字、小文字、数字、記号の組み合わせを必須とする厳格なパスワードポリシーを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' );
}
}
}
}
スニペットのカスタマイズ
このスニペットは、あなたの特定のニーズに合わせて変更することができます:
- フィールドID:交換
100
でのif ( $field_id == 100 && $field['type'] === 'password' ) {
の行に、パスワード・フィールドの実際のIDを入力してください。フィールドIDを見つけるには、以下のガイドを参照してください。 フィールドIDの見つけ方. - エラーメッセージ:のテキストを変更することでエラーメッセージをカスタマイズできます。
esc_html__()
関数である。 - パスワードの条件:パスワードの条件を変更したい場合は、以下のように正規表現を変更することができます。
preg_match()
関数を使用したり、必要に応じてチェックを追加・削除する。
これで完了です!これで WPForms にカスタムパスワードバリデーションが実装されました。これで、ユーザが特定の要件を満たす強力なパスワードを作成できるようになります。
フォームに表示されるバリデーションメッセージについてもっと知りたいですか?詳細については、バリデーションメッセージの変更に関するチュートリアルをご覧ください。