Ich habe eine bestehende PHP Legacy-Site mit 15000 Benutzern mit Base64-Hash-Passwörtern. Ich möchte alle diese Benutzer mit ihren Passwörtern in die neue WordPress-Site importieren. Was wäre der beste Ansatz, um dies zu realisieren?
Praveen
Sie können wp_insert_user
verwenden. Da Ihre alte Datenbank Kennwörter in base64 enthält, können Sie die ursprüngliche Kennwortzeichenfolge einfach mit base64_decode
abrufen.
$new_user_data = array(
'user_pass' => 'password',//pass your decoded password string
'user_login' => 'username',//pass your username
'user_email' => 'email',
'first_name' => 'firstname',
'last_name' => 'lastname',
'role' => 'author'//if you want to specify a different role other than default one
);
wp_insert_user( $new_user_data );
Sie müssen Ihre alten Daten in einer CSV- oder XML- oder Textdatei formatieren und sie entsprechend lesen und weitergeben. Und versuchen Sie nicht, alle 15000 Benutzer gleichzeitig zu importieren. Tun Sie dies in mehreren Teilen. Auch die Funktion sleep()
ist recht gut, um dem Server etwas Ruhe zu gönnen.
WordPress verwendet MD5 zum Verschlüsseln der Passwörter. Daher denke ich nicht, dass der direkte Import von Benutzern hier funktionieren wird. Sie können entweder ein Skript schreiben, um Benutzer mit neuen automatisch generierten Kennwörtern zu importieren und E-Mails an alle zu senden.
OR
Verwenden Sie die Filter-Hooks 'authenticate', 'wp_authenticate_user'
, um Benutzer anhand der vorhandenen Benutzertabelle zu validieren. http://codex.wordpress.org/Plugin_API/Filter_Reference/authenticate
Dieses Plugin könnte helfen: http://wordpress.org/plugins/external-database-authentication/
WP mit md5 für die Verschlüsselung und Sie haben base64, so denke ich nicht, dass Sie das gleiche Passwort direkt importieren können. Aber wie wir alle wissen, kann base64 dekodiert werden http://www.php.net/base64_decode so ist es klar, dass wir auch Ihr altes Passwort importieren können Aber es gibt mehrere WP Plugin zum Importieren von Benutzern aus der CSV-Datei in die WP Datenbank und mit neuem Passwort. Das System sendet auch eine Benachrichtigung über neue Anmeldeinformationen an diesen Benutzer. http://wordpress.org/plugins/members-import/ Dieses Plugin kann Ihnen dabei helfen, dasselbe zu tun. In diesem Plugin, in dem Kennwortfelddaten aus der CSV-Datei verwendet werden, übergeben Sie diese Zeichenfolge an die Funktion base64_decode()
.
Wenn Sie dasselbe Kennwort importieren, müssen Sie keine Benachrichtigungsmail senden.