Я хочу, чтобы моим пользователям WordPress при регистрации автоматически назначался случайный (например, 8-значный) идентификатор пользователя вместо того, чтобы выбирать имя пользователя. Таким образом, в действительности они имеют номер участника вместо имени пользователя, хотя это то же поле, которое используется.
Итак, как мне подключиться к новой функции создания пользователя и сгенерировать этот идентификатор?
Кроме того, мне нужно заменить около 1200 существующих пользователей (сайт в настоящее время не используется, они получат электронное письмо со своими данными позже) идентификационными номерами.
Каков наилучший подход к каждому из этих предметов?
Что касается нынешних 1200 пользователей
Вы можете создать функцию, которая делает это, или даже лучше — создать плагин с кнопкой, которая запускает функцию для него.
Начало может быть:
<?php $users = get_users();
foreach($users as $user){
$user_id = $user->ID;
$randomInterger = rand(10000000,99999999);
$user_data = get_user_by( 'user_login', (string)$randomInterger ); // return WP_User object otherwise return false if not found
if ( empty( $user_data ) ) {
//User not exits with this login - therefore we can use it
$user_id = wp_update_user( array( 'ID' => $user_id, 'user_login' => (string)$randomInterger ) );
if ( is_wp_error( $user_id ) ) {
// There was an error, probably that user doesn't exist.
} else {
// Success!
}
} else {
//Generate a new number, since this one has already been used.
}
}
Теперь это всего лишь мысль — вам нужен способ инициализировать его и убедиться, что он не срабатывает при каждой загрузке вашей страницы 😀 — и запасной вариант, если случайное число уже существует.
Конечно, есть много других способов сделать это — это была просто быстрая мысль.
Других решений пока нет …