Skip to content

Instantly share code, notes, and snippets.

@RadGH
Created April 16, 2014 16:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RadGH/10904550 to your computer and use it in GitHub Desktop.
Save RadGH/10904550 to your computer and use it in GitHub Desktop.
Quickly create the same user in multiple WordPress sites
// Bookmarklet:
// javascript:(function()%7Bif%20(%20jQuery('%23createuser').length%20)%20%7Bvar%20previous_creds%20%3D%20prompt('Enter%20previous%20setup%20code%20(or%20click%20enter%20to%20skip)'%2C%20'')%3Bvar%20username%20%3D%20false%3Bvar%20email%20%3D%20false%3Bvar%20password%20%3D%20false%3Bvar%20firstname%20%3D%20false%3Bvar%20lastname%20%3D%20false%3Bvar%20website%20%3D%20false%3Bvar%20role%20%3D%20false%3Bif%20(%20previous_creds%20)%20%7Bvar%20creds%20%3D%20jQuery.parseJSON(%20previous_creds%20)%3Bif%20(%20creds%20)%20%7Busername%20%3D%20creds.username%3Bemail%20%3D%20creds.email%3Bpassword%20%3D%20creds.password%3Bif%20(%20creds.firstname%20)%20firstname%20%3D%20creds.firstname%3Bif%20(%20creds.lastname%20)%20lastname%20%3D%20creds.lastname%3Bif%20(%20creds.website%20)%20website%20%3D%20creds.website%3Bif%20(%20creds.role%20)%20role%20%3D%20creds.role%3B%7D%7Dif%20(%20!previous_creds%20%7C%7C%20!username%20%7C%7C%20!email%20%7C%7C%20!password%20)%20%7Bvar%20username%20%3D%20prompt('(Step%201%2F8)%20Username%3A'%2C%20'')%3Bvar%20password%20%3D%20prompt('(Step%202%2F8)%20Password%3A'%2C%20'')%3Bvar%20email%20%3D%20prompt('(Step%203%2F8)%20Email%20Address%3A'%2C%20'')%3Bvar%20firstname%20%3D%20prompt('(Step%204%2F8)%20First%20Name%3A'%2C%20'')%3Bvar%20lastname%20%3D%20prompt('(Step%205%2F8)%20Last%20Name%3A'%2C%20'')%3Bvar%20website%20%3D%20prompt('(Step%206%2F8)%20Website%20URL%3A'%2C%20'')%3Bvar%20role_text%20%3D%20new%20Array()%3BjQuery('%23role').find('option').each(function()%20%7B%20if%20(%20jQuery(this).val()%20)%20role_text.push(%20jQuery(this).val()%20)%3B%20%7D)%3Bvar%20role%20%3D%20prompt(%22(Step%207%2F8)%20Role%3A%5Cn%5CnAvailable%20Roles%3A%5Cn%22%20%2B%20role_text.join(%22%2C%20%22)%20%2C%20'subscriber')%3Bvar%20creds%20%3D%20%7B'username'%3A%20username%2C'password'%3A%20password%2C'email'%3A%20email%2C'firstname'%3A%20firstname%2C'lastname'%3A%20lastname%2C'website'%3A%20website%2C'role'%3A%20role%2C%7D%3Bif%20(%20username%20%26%26%20email%20%26%26%20password%20)%20prompt('(Step%208%2F8)%20To%20repeat%20this%20action%20on%20another%20site%2C%20use%20the%20following%20code%20in%20the%20first%20step%3A'%2C%20JSON.stringify(%20creds%20))%3B%7Dif%20(%20username%20%26%26%20email%20%26%26%20password%20)%20%7BjQuery('%23user_login').val(%20username%20)%3BjQuery('%23email').val(%20email%20)%3BjQuery('%23pass1').val(%20password%20)%3BjQuery('%23pass2').val(%20password%20)%3Bif%20(%20creds.firstname%20)%20jQuery('%23first_name').val(%20firstname%20)%3Bif%20(%20creds.lastname%20)%20jQuery('%23last_name').val(%20lastname%20)%3Bif%20(%20creds.website%20)%20jQuery('%23url').val(%20website%20)%3Bif%20(%20creds.role%20)%20jQuery('%23role').val(%20role%20)%3B%7D%7D%7D)()
// This script will ask you for a code generated by a previous attempt. Leave it blank on your first run.
// Fill in all fields, then copy the generated code (step 8)
// All fields will be entered into the WordPress "Add New User" form, ready for you to click submit
// For the next site, to create the same user, paste your code in the first step.
if ( jQuery('#createuser').length ) {
var previous_creds = prompt('Enter previous setup code (or click enter to skip)', '');
var username = false;
var email = false;
var password = false;
var firstname = false;
var lastname = false;
var website = false;
var role = false;
if ( previous_creds ) {
var creds = jQuery.parseJSON( previous_creds );
if ( creds ) {
username = creds.username;
email = creds.email;
password = creds.password;
if ( creds.firstname ) firstname = creds.firstname;
if ( creds.lastname ) lastname = creds.lastname;
if ( creds.website ) website = creds.website;
if ( creds.role ) role = creds.role;
}
}
if ( !previous_creds || !username || !email || !password ) {
var username = prompt('(Step 1/8) Username:', '');
var password = prompt('(Step 2/8) Password:', '');
var email = prompt('(Step 3/8) Email Address:', '');
var firstname = prompt('(Step 4/8) First Name:', '');
var lastname = prompt('(Step 5/8) Last Name:', '');
var website = prompt('(Step 6/8) Website URL:', '');
var role_text = new Array();
jQuery('#role').find('option').each(function() { if ( jQuery(this).val() ) role_text.push( jQuery(this).val() ); });
var role = prompt("(Step 7/8) Role:\n\nAvailable Roles:\n" + role_text.join(", ") , 'subscriber');
var creds = {
'username': username,
'password': password,
'email': email,
'firstname': firstname,
'lastname': lastname,
'website': website,
'role': role,
};
if ( username && email && password ) prompt('(Step 8/8) To repeat this action on another site, use the following code in the first step:', JSON.stringify( creds ));
}
if ( username && email && password ) {
jQuery('#user_login').val( username );
jQuery('#email').val( email );
jQuery('#pass1').val( password );
jQuery('#pass2').val( password );
if ( creds.firstname ) jQuery('#first_name').val( firstname );
if ( creds.lastname ) jQuery('#last_name').val( lastname );
if ( creds.website ) jQuery('#url').val( website );
if ( creds.role ) jQuery('#role').val( role );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment