Migrate users from bbPress to WordPress….
-
I have recently migrated my entire phpBB over to bbPress and now want to move the bbPress users into wordpress mu so I can use wordpress integration the problem was that there is no easy way to migrate and check the users aren’t doubling up…
I wrote a simple php script to do just that and it allowed me to list out the users where manual attention is required, it can be run just from the command line like this…. ‘php -f file.php’ and will move the users over perfectly (at least for me)…
Note there has been no testing of this code it worked for me and may cause you issues, back up your database first!
Comments on the code appreciated for future improvement.
‘<?php
echo “n”;
echo “+
+n”;echo “| bbPress to WordPress User Migration |n”;
echo “+
+n”;echo “| Created by: |n”;
echo “| Tom Lynch |n”;
echo “+
+n”;echo “n”;
echo “Messages:n”;
echo “n”;
echo “Username Messagen”;
echo ”
n”;function printSpaces($username) {
$spaces = 25 – strlen($username);
echo $username;
for ($i = 0; $i < $spaces+1; $i++) {
echo ” “;
}
}
// Enter your database host, username and password here…
mysql_connect(‘localhost’, ‘username’, ‘password’);
// Enter your database name here (both tables must be in same database – sorry)
mysql_select_db(‘database’);
$migrated = 0;
$errors = 0;
$query = mysql_query(“SELECT user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_status, display_name FROM bb_users WHERE user_pass LIKE ‘$P$B%’;”);
while ($data = mysql_fetch_assoc($query)) {
$query2 = mysql_query(“SELECT user_login, user_email FROM wp_users WHERE user_login = ‘”.$data.”‘ || user_email = ‘”.$data.”‘;”);
if (mysql_num_rows($query2) > 0) {
$data2 = mysql_fetch_assoc($query2);
if ($data == $data2 && $data == $data2) {
// Suppressing already migrated users error
//echo printSpaces($data) . ” has already been migrated by the looks of it!n”;
} else if ($data == $data2) {
echo printSpaces($data) . ” could not be migrated, that user name is already taken! (“.$data.”)n”;
$errors++;
} else if ($data == $data2) {
echo printSpaces($data) . ” could not be migrated, that email address is already taken! (“.$data.”)n”;
$errors++;
}
} else {
mysql_query(“INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_status, display_name) VALUES (‘” . $data . “‘, ‘” . $data . “‘, ‘” . $data . “‘, ‘” . $data . “‘, ‘” . $data . “‘, ‘” . $data . “‘, ‘” . $data . “‘, ‘” . $data . “‘);”);
// Suppressing user migrated message
//echo $data . ” was migratedn”;
$migrated++;
}
}
$alreadyDone = ((mysql_num_rows($query) – $errors) – $migrated);
echo “n”;
echo “Stats:n”;
echo “n”;
echo “Users Migrated: ” . $migrated . “n”;
echo “Already Migrated: ” . $alreadyDone . “n”;
echo “Not Migrated: ” . $errors . “n”;
echo “=======================================n”;
echo “Total: ” . mysql_num_rows($query) . “n”;
echo “n”;
?>’
- You must be logged in to reply to this topic.