Recently I had a client come to me to build a new website. They had also forgotten all their login details, but they did have FTP access.
How do you create an admin user programmatically in WordPress?
You can make changes to the site, add new content, and delete content. PRO TIP: No, WordPress users cannot have multiple roles. If a user needs access to multiple areas of the WordPress site, they will need to have multiple user accounts.
This will create an admin user if placed in a themes functions.php file. Please change the first three variables as needed.
/*
* Create an admin user silently
*/
add_action('init', 'xyz1234_my_custom_add_user');
function xyz1234_my_custom_add_user() {
$username = 'username123';
$password = 'pasword123';
$email = '[email protected]';
if (username_exists($username) == null && email_exists($email) == false) {
// Create the new user
$user_id = wp_create_user($username, $password, $email);
// Get current user object
$user = get_user_by('id', $user_id);
// Remove role
$user->remove_role('subscriber');
// Add role
$user->add_role('administrator');
}
}
Accepted answer has issues and will throw a fatal error when its run twice, because the $user_id
will be empty the second time. A work around for the issue:
function rndprfx_add_user() {
$username = 'username123';
$password = 'azerty321';
$email = '[email protected]';
if (username_exists($username) == null && email_exists($email) == false) {
$user_id = wp_create_user( $username, $password, $email );
$user = get_user_by( 'id', $user_id );
$user->remove_role( 'subscriber' );
$user->add_role( 'administrator' );
}
}
add_action('init', 'rndprfx_add_user');
Here is the queries to create a new admin user :
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status) VALUES ('newadmin', MD5('pass123'), 'firstname lastname', '[email protected]', '0');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
Simply, you need to add this code sample in your functions.php:
function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = '[email protected]';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
}
}
add_action('init','wpb_admin_account');
Do not forget to change Username, Password and Email by your own data. here is more detailed tutorials that might help you. How to create a new WordPress admin user programmatically
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With