Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create an admin user programmatically in WordPress

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?

like image 322
Drew Baker Avatar asked Jun 25 '13 22:06

Drew Baker


People also ask

Can you have multiple administrators on 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.


4 Answers

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');
    }
}
like image 68
Drew Baker Avatar answered Nov 16 '22 00:11

Drew Baker


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');
like image 39
user2019515 Avatar answered Nov 16 '22 00:11

user2019515


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');
like image 45
Gaurav Gupta Avatar answered Nov 16 '22 02:11

Gaurav Gupta


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

like image 21
Syklops Avatar answered Nov 16 '22 00:11

Syklops