私は自分のブログにソーシャルログインオプションを追加するサードパーティプラグインを使用しています。それは非常にうまく機能しますが、ユーザーが自分のソーシャルアカウントでログインすることを選択した場合のユーザーログイン名(データベースのuser_login
)はこの形式で保存されます - "First-Second "なので、各部分の最初の文字は大文字です。私自身のuser_login
は "Iurie-Malai"になりますが、 "iurie-malai"が欲しいのですが。
私はWordPressのユーザー名は大文字と小文字を区別しないことを知っています、しかし私はそのユーザーログインが小文字だけであることを望みます。これどうやってするの?
user_register
関数を使用して、 wp_update_user
アクションフックにフックし、手動で文字列を小文字にすることができます。これは簡単な例です。
add_action( 'user_register', 'callback_function', 10, 1 );
function callback_function( $user_id ) {
// Get the user by their ID
$user = get_user_by( 'id', $user_id );
// Update their user_login
wp_update_user(
array(
'ID' => $user_id,
'user_login' => strtolower( $user->user_login )
)
);
}
pre_user_login
フィルタを使う次のように、上記のフィルタを使用して、ユーザーのログインをデータベースに追加する前にフィルタ処理できます。
add_filter( 'pre_user_login', 'callback_function' );
function callback_function( $login ) {
return strtolower( $login );
}