サポート » 使い方全般 » ログインパスワード設定を半角英数字記号のみにしたい

  • 解決済 no23h

    (@no23h)


    ログインパスワードについて質問です。

    ユーザーのログインパスワードの設定画面、またはプロフィールページのパスワード再設定にて、
    今まで知らなかったのですが、ひらがな、漢字、全角英数字でもパスワードを登録できることを知りました。

    これを、半角の英数字記号以外は使用できないようにし、
    全角を入力すると「全角文字が含まれています。登録できません」と警告するなど、
    チェッカー的な機能を盛り込みたいのですが、functions.phpやプラグイン等で実現可能でしょうか?

    お詳しい方、ご教授いただけますと幸いです。
    宜しくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    user_profile_update_errors フックを使用するはどうでどうでしょう?

    例:

    add_action( 'user_profile_update_errors', function( $errors, $update, $user ) {
    	if ( preg_match( '/[^\x20-\x7e]/', $user->user_pass ) ) {
    		$errors->add( 'pass', '<strong>Error</strong>: パスワードに不正な文字が含まれています。', array( 'form-field' => 'pass1' ) );
    	}
    }, 10, 3 );
    スレッド開始 no23h

    (@no23h)

    @ishitaka

    ありがとうございます。
    毎回助かっております。

    ご提示いただいたコードで、プロフィールページのパスワードには対応できました。
    感謝申し上げます。

    一点すみません、
    wp-login.phpのパスワードリセットページのパスワードフォームも同様の処理をしたく、
    フックを探して以下をfunctions.phpに追加してみたのですがうまくいきません。
    フック先が間違っているのか、書き方が間違っているのか、
    何度も申し訳ありませんが、ご教授いただけないでしょうか。

    add_action( 'validate_password_reset', function( $errors, $user ) {
        if ( preg_match( '/[^\x20-\x7e]/', $user->user_pass ) ) {
            $errors->add( 'pass', '<strong>Error</strong>: パスワードに不正な文字が含まれています。', array( 'form-field' => 'pass1' ) );
        }
    }, 10, 3 );

    こんな感じでしょうか?

    add_filter( 'validate_password_reset', function( $errors, $user ){
    	if ( isset( $_POST['pass1'] ) ) {
    		if ( preg_match( '/[^\x20-\x7e]/', $_POST['pass1'] ) ) {
    			$errors->add( 'pass', '<strong>Error</strong>: パスワードに不正な文字が含まれています。', array( 'form-field' => 'pass1' ) );
    		}
    	}
    }, 10, 2 );
    スレッド開始 no23h

    (@no23h)

    @ishitaka

    ありがとうございます。
    こちらのコードで理想の状態になりました。

    重ね重ねお礼申し上げます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「ログインパスワード設定を半角英数字記号のみにしたい」には新たに返信することはできません。