회원제로 워드프레스 사이트를 운영하거나 쇼핑몰을 운영시 ID로(워드르세스에서는 usename, 사용자이름)아러고 표현합니다.) 한글을 사용하고 싶을 때가 있습니다.

1. 한글 ID를 사용하려는 이유

왜 한글 ID를 사용하려고 할까요? 이 이는 다음과 같은 이유라고 생각합니다.

회원들은 자기를 나타내는 특별한 이름을 가지고 싶어하는데요. 이를 위해서 ID외 별칭과 같은 별도의 이름을 만듭니다. 네이버나 다음도 ID는 영어로 받고 별도의 별칭을 만들도록 합니다.

그러나 고객들에게 많은 정보를 입력하라고 강요할 수 없기 때문에 가능한 한가지로 많은 역활을 하도록 하는것이 필요하다고 생각합니다.

워드프레스도 user name이 있고 nick name이 있고 도 display name 등으로 지칭하는 이름이 많습니다.

그렇기에 user name = nick name = display name으로 효율적으로 사용할 수 있는 이름이 있다면 관리하기도 좋고 사용자도 많은 정보를 입력할 필요가 없으므로 좋을 것입니다.

그리고 user name, nick name, display name을 각기 사용하고 싶은 적극적인 사용자는 자기 프로필을 수정해 사용하도록 유도하는 것이 효율적이기 때문입니다

2. 워드프레스 회원가입 시 한글 ID 사용 방법

워드프레스에서 한글 ID를 사용 가능케 하는 방법은 여러 삽질을 통해서 아래와 같이 정리해 봤습니다.

2.1. 비라틴어 입력 가능하게 만들기

우선 워드프레스 회원가입 시 라틴어가 아닌 문자도 입력 가능하게 만들어야 합니다. 이는 구글링을 통하면 쉽게 방법을 발견할 수 있습니다.

Allowing non-latin characters in registration

워드프레스 회원 가입 시 사용자명(Username)에 한글 허용하기

위에서 언급한 두 자료에서 공통으로 정리한 코드는 아래와 같습니다. 이 코드를 functions.php나 MU-Plugin의 php 파일에 추가합니다.

add_filter('sanitize_user', 'non_strict_login', 10, 3);

function non_strict_login( $username, $raw_username, $strict ) {

if( !$strict )
return $username;

return sanitize_user(stripslashes($raw_username), false);
}

2.2. 입력 단어수 제한을 늘리기

원래 워드프레스에서 라틴어로 usename을 입력 시 60자까지 입력 가능합니다.

그런데 위에서와 같이 비라틴어 입력이 가능하도록 만든다음 회원가입을 해보면 한글의 경우 5자까지만 입력 가능합니다.

한글로 아이디를 만든다면 독특한 이름을 만들고 싶겠죠. 예를들어 “미래소년코난”이나 “필드의제왕”같은 이름말입니다.

그렇기때문에 한글로 ID를 사용한다면 5자 한계를 뛰어넘어야 합니다. 이는 데이타베이스를 건들어야 합니다.

데이타베이스에 들어가 데이타베이스를 선택하고 아래와 같은 명령어를 사용합니다.

ALTER TABLE `데이타베이스명_users` CHANGE `user_nicename` `user_nicename` VARCHAR(255) NOT NULL DEFAULT '';

그러면 굉장히 긴 한글로 만든 ID를 사용할 수 있습니다. “동아온서부의총잡이”와 같은 ID가 가능합니다. 그렇게 긴 ID르 쓸 분이 있을까 싶지만 생각보다 많을 것 같습니다.

2.3. ID 길이는 제한해야죠

그렇지만 무한히 긴 ID를 사용한다든지 너무 짧은 ID는 경계해야합니다. 따라서 ID 길이를 제한하는 코드를 추가합니다.

당근 이 코드를 functions.php나 MU-Plugin의 php 파일에 추가합니다.

아래에서 ID는 최소 2자이상 최대 7자까지 사용하도록 제한을 두었습니다.

// define the woocommerce_registration_errors callback 
function my_registration_errors( $errors, $sanitized_user_login, $user_email ) {

    // make filter magic happen here... 
    if ( strlen( $sanitized_user_login ) < 5 ) {
        $errors->add( 'username_too_short', __( '<strong>ERROR</strong>: ID(별칭)은 최소 2자(4 characters)이상 되어야 합니다.' ) );
    }

    else if ( strlen( $sanitized_user_login ) > 16 ) {
        $errors->add( 'username_too_long', __( '<strong>ERROR</strong>: ID(별칭)은 한글은 7자, 영어는 15자까지만 가능합니다. ' ) );
    }
    return $errors;
}

// add the filter 
add_filter( 'woocommerce_registration_errors', 'my_registration_errors', 10, 3 );

3. 마치며

주말에 하글 ID 입력이 가능한 회원가입폼을 공부하는데 제대로 작동하지 않아 엄청 삽질 및 구글을 통해서 알아내 내용을 간단히 정리해 공유해 봅니다.

저처럼 많은 시간 삽질하는 분이 없기를 바라면서..

LEAVE A REPLY

Please enter your comment!
Please enter your name here