Импортируйте 10 000 пользователей в WordPress с определенным идентификатором для каждого пользователя

У меня есть веб-сайт, насчитывающий около 10 000 пользователей. Я конвертирую этот сайт в WordPress. Новый сайт готов к работе, но я должен привлечь всех пользователей.

Существует ряд плагинов, доступных для импорта пользователей из файла CSV, и у меня есть файл CSV, готовый к работе. Плагин, который я хотел бы использовать, следующий:

Импорт пользователей из CSV

Причина, по которой я хотел бы использовать этот плагин, заключается в том, что он предоставляет возможность импортировать CSV-файл, содержащий идентификаторы пользователя. К сожалению, плагин в настоящее время разработан так, что если идентификаторы присутствуют в CSV-файле, предполагается, что эти пользователи уже существуют в вашей базе данных WordPress, и вы пытаетесь «ОБНОВИТЬ» эти записи.

Я не. Я пытаюсь сделать новых пользователей в базе данных, но с конкретными идентификаторами (поскольку эти идентификаторы привязаны к другой системе, и я не хочу, чтобы эти проигравшие теряли доступ ко всей этой другой информации в результате изменения идентификатора из старая система к новой.

Похоже, что плагин выше, возможно, является копией встроенных функций WordPress для регистрации или обновления пользователей, так что это может быть проблемой.

Как я могу достичь своей цели с минимальными затратами времени?

BTW – Мне очень удобно в phpmyadmin, поэтому я не против делать это там, единственная проблема заключается в том, что я хочу, чтобы все пользователи получали электронное уведомление, уведомляющее их и предоставляющее новый пароль (потому что я не могу их переместить ). Используя плагин, это автоматически. Без этого не много.

Спасибо за любую помощь.

Я не знаком с плагином, но это может быть возможностью обойти его:

  1. Импортируйте идентификаторы в базу данных напрямую с помощью SQL (phpMyAdmin).
  2. Используйте плагин для импорта CSV и запуска «обновления» для существующих пользователей, поэтому они получают обновленную электронную почту с паролем.

Это ответ, о котором я говорил выше в своем комментарии.

Во-первых, я должен сказать, что вчерашняя пьеса Андрея «может быть полезной», которая была опубликована, работает, но я не делал этого так.

В любом случае вам нужно вставить записи в таблицу wp_users, содержащую все идентификаторы членов, которые вы хотите импортировать (я также включил имена пользователей, но не уверен, что это необходимо).

Затем используйте импортированные пользователи из CSV-плагина, на который я ссылался в своем первоначальном вопросе, чтобы импортировать имя пользователя, адрес электронной почты и роль пользователя (и любые другие поля, которые вы хотите импортировать). Для этого у плагина есть инструкции)

Чтобы установить их для определенной роли при импорте, просто добавьте столбец в файл CSV под названием «роль», а затем в каждой записи укажите в этом столбце, какова должна быть их роль: «подписчик», «автор» и т. Д.

Я считаю, что ваши «роли» должны быть введены в нижнем регистре. Так я и сделал. Другие указали, что если первая буква была заглавной, это не сработало.

Убедитесь, что идентификаторы включены в этот CSV, чтобы плагин знал, какие записи обновлять в базе данных с новой информацией.

Вот пример нескольких записей из моего CSV-файла, поэтому вы можете увидеть, как он структурирован:

 "ID","user_login","user_email","role","another_field","another_field_2" "5094","username5094","user5094@gmail.com","subscriber","another_field_value","another_field_2_value" "5095","username5095","user5095@gmail.com","subscriber","another_field_value","another_field_2_value" 

++++++++++ УВЕДОМЛЕНИЕ ++++++++++

Когда я изначально опубликовал этот ответ, я забыл указать, что сделал небольшую модификацию для модуля «Импорт пользователей из CSV». В вашем администраторе WordPress в разделе «плагины» выберите ссылку «Редактор». Затем в раскрывающемся списке «Верхняя правая рука» выберите правильный плагин («Импорт пользователей из плагина CSV»).

Примерно на полпути вниз по файлу php существует пара строк, разделенных примерно на 10-15 строк.

Первое:

 if ( $update ) 

Я прокомментировал эту строку и изменил ее так, чтобы код для этой строки теперь выглядел так:

 /* if ( $update ) */ if (1==0) 

Затем вторая строка, которую вы собираетесь изменить (около 10-15 строк ниже последней):

 if ( ! $update ) { 

Что я изменил на:

 /* if ( ! $update ) { */ if ( 1==1 ) { 

Это гарантирует, что все пользователи, которые вы импортируете, получат приветственные письма с новым именем пользователя и паролем.

+++++++++ КОНЕЦ УВЕДОМЛЕНИЕ +++++++++

Я обнаружил, что могу импортировать только 150 пользователей за один раз, не получив ошибку сервера, что было не идеальным, поскольку у меня есть тысячи пользователей для импорта. Но я не думаю, что это ограничение для плагина, так как это настройки на моем сервере и / или доступной памяти.

Если вы проверили соответствующие поля, каждый импортируемый пользователь получит электронное письмо «нового пользователя» из вашего WordPress, включая имя пользователя и пароль для входа. Таким образом, вам нужно будет сразу же зашифровать пароли в своих записях, иначе они не будут работать, когда они попытаются войти в систему.

Лично я импортировал некоторых пользователей, а затем запустил свой запрос на шифрование. Затем импортируйте еще нескольких пользователей, а затем запустите мой запрос на шифрование. Таким образом, никогда не было задержки более чем через минуту между «приветственным письмом», которое получат пользователи, и шифрованием их пароля, чтобы логин работал.

После того, как вы импортируете все или часть импортированных пользователей. Затем используйте решение Andrews выше с «WHERE CHAR_LENGTH (wp_users.user_pass) = 12». Поскольку WordPress собирается назначить всем вашим новым пользователям 12-значный пароль при импорте их вместе с плагином, это те, которые вы хотите обновить с помощью зашифрованной версии, и это то, что делает «WHERE» часть этого запроса Возможно, ваша ситуация может не потребовать использования этой части «ГДЕ», но это не помешает оставить ее там, если вы не уверены.

В следующий раз, когда эти пользователи войдут в ваш блог WordPress, WordPress изменит шифрование этих паролей на новый метод шифрования. Пользователь не знает разницы.

И для тех, кому интересно, какой метод я использовал вместо Andrew's, я создал файл PHP, содержащий следующий код:

 <?php require_once '/home/evaluate/public_html/members-blog/wp-config.php'; $sql="SELECT user_pass,ID FROM wp_users WHERE CHAR_LENGTH(wp_users.user_pass) = 12"; $find = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($find)) { $current_password = $row['user_pass']; $current_id = $row['ID']; $hashed_password = wp_hash_password( $current_password ); $update_sql= "UPDATE wp_users SET user_pass = '" . $hashed_password . "' WHERE ID = " . $current_id . ""; $update = mysql_query($update_sql) or die(mysql_error()); echo $current_id . " " . $hashed_password; echo "<br />"; } ?> 

Затем, когда у меня были некоторые пользователи, импортированные через плагин, я вытащил URL-адрес этого файла php в моем браузере, чтобы запустить его.

Этот php-файл использует собственный метод шифрования WordPress, привязывая его к файловому файлу WordPress (инструкция require_once). Это также связывает его с правильной базой данных. Он захватывает каждого пользователя в таблице wp_users, которая имеет пароль UNencrypted (любой пароль в таблице, всего 12 символов, UNencrypted), шифрует пароль и затем обновляет эту запись с помощью новой зашифрованной версии пароля. Наконец, он повторяет идентификатор пользователя, который он только что обновил, и зашифрованную версию пароля.

Он продолжает цикл через этот процесс, пока все пользователи в базе данных с UNencrypted password не будут зашифрованы. В конце вы увидите распечатку, отображаемую на экране, которая показывает все обновленные идентификаторы пользователя и зашифрованную версию пароля (чтобы вы получили подтверждение того, что было сделано).

Это также хорошо, потому что, если скрипт умирает до завершения всех записей, все, что вы делаете, – это обновить страницу, чтобы перезапустить ее. Поскольку он только обновляет записи, которые еще не были зашифрованы, он просто поднимается там, где это было остановлено.

Надеюсь, это поможет кому-то. Дайте мне знать, если у вас есть вопросы выше этого процесса. Я постараюсь как можно лучше уточнить.

Вот как я сделал эту работу:

  • Использовать экспорт CSV для экспорта ваших участников
  • Импорт в Excel
  • Проверьте последний идентификатор вашего последнего сайта
  • Выберите столбец идентификатора в листе Excel
  • Нажмите кнопку удаления
  • Заполните «ID» в первой строке
  • Второй тип строки – первый следующий идентификационный номер, который вы хотите
  • Перетащите нижний правый угол несколько вниз, чтобы показать несколько идентификаторов для первых нескольких членов
  • Выберите те ID
  • Дважды щелкните по нижнему праву vorner последнего идентификатора
  • Теперь все поля идентификатора должны быть заполнены правильно
  • Экспорт в CSV еще раз
  • Импорт с пользователями CSV-импорта, обязательно выберите опцию nag

Все сделано!