Должно быть довольно просто, хотя вам может потребоваться назначить новый пароль пользователям. Обычно это нормально для пользователей, если они знают, что это произойдет.
Возьмите старую базу данных и выполните простой SQL-запрос для извлечения данных, затем используйте некоторый код, подобный следующему, для создания нового пользователя для каждого пользователя в вашей старой базе данных:
$newuser = array(
'user_pass' => wp_generate_password( 12,0 ),
'user_login' => $email,
'user_nicename' => $name['first'].' '.$name['last'],
'user_email' => $email,
'display_name' => $name['first'].' '.$name['last'],
'nickname' => $name['first'].' '.$name['last'],
'first_name' => $name['first'],
'last_name' => $name['last'],
//''
);
$user_id = wp_insert_user($newuser);
wp_new_user_notification($user_id, $newuser['user_pass']);
Этот код работает с WordPress 3.1. В этом примере вы просто хотите заменить переменные $ name данными, которые вы предоставили из своей старой базы данных.
Последние две строки важны, потому что именно здесь происходит настоящая работа. Функция wp_insert_user создаст пользователя (или выдаст ошибку, если вам не хватает информации), а функция wp_new_user_notification отправит им электронное письмо с их паролем. Я очень рекомендую потратить время на переписывание нового плагина уведомлений пользователя ( это подключаемая функция , так что вы можете просто скопировать вставить его в файл functions.php и внести изменения там ), чтобы пользователи электронной почты имеют смысл. Вы также можете написать свою собственную функцию электронной почты или, если ваши пароли хранятся в виде простого текста, просто передайте эту информацию в WP.
Редактировать: Я пропустил вашу потребность в настраиваемых полях, Gravity Forms делает это довольно хорошо, но вы можете добавить настраиваемое поле для любого пользователя с помощью функции update_user_meta . Так что в приведенном выше примере кода вы просто хотите добавить что-то вроде этого:
update_user_meta($user_id, "my_custom_data_key", "my_custom_data_value");
Чтобы получить эти данные для отображения, вы просто используете get_user_meta:
print get_user_meta($user_id, "my_custom_data_key");