Ready to get started?

Check out the plugin on GitHub and start using it today.

Back to WP-CLI

WP-CLI User Commands

User commands manage WordPress users from the terminal — creating, updating, deleting, changing roles, and resetting passwords. Useful for onboarding, scripted environment setup, and bulk user operations.


wp-cli — bash

Commands

wp user list

Lists all WordPress users with ID, login, email, role, and registration date.

wp user list
wp user list --role=administrator
wp user list --role=editor
wp user list --format=json
wp user list --fields=ID,user_login,user_email,roles

Use --role to filter by role. Use --fields to limit output columns. Useful for auditing who has admin access before a security review.


wp user create

Creates a new WordPress user.

wp user create john john@example.com --role=editor
wp user create admin admin@example.com --role=administrator --user_pass=secret
wp user create author author@example.com --role=author --send-email

Requires username and email as positional arguments. --role defaults to subscriber if omitted. --send-email sends a welcome email with login credentials. --user_pass sets the password directly — omit it to let WordPress generate one.


wp user update

Updates an existing user’s data or role.

wp user update 1 --display_name="John Doe"
wp user update john --user_email=newemail@example.com
wp user update john --role=administrator
wp user update 1 --user_pass=newpassword

Accepts user ID or login as identifier. Use to promote users, fix emails, or reset passwords without going through the admin panel.


wp user delete

Deletes a WordPress user.

wp user delete 3
wp user delete john --reassign=1
wp user delete 3 4 5

--reassign transfers the deleted user’s posts to another user by ID. Without it, posts become unassigned. Always use --reassign on editorial sites to avoid orphaned content.


wp user get

Returns details about a specific user.

wp user get john
wp user get 1
wp user get john --format=json
wp user get john --fields=ID,user_login,user_email,roles

Useful in scripts that check user state before performing operations.


wp user meta get / set / delete

Manages user meta fields directly.

wp user meta get 1 _capabilities
wp user meta set 1 my_custom_field "value"
wp user meta delete 1 my_custom_field
wp user meta list 1

Direct access to wp_usermeta table. Use when plugins store settings in user meta and you need to update them in bulk or during migrations.


wp user add-role / remove-role

Adds or removes a role from a user without replacing existing roles.

wp user add-role 1 editor
wp user remove-role 1 editor

WordPress supports multiple roles per user. This is different from wp user update --role which replaces the role entirely. Use when a user needs permissions from two roles simultaneously.


wp user set-role

Sets the user’s role, replacing any existing roles.

wp user set-role 1 administrator
wp user set-role john subscriber

Replaces all current roles with the specified one. Use when you want a clean role assignment.


wp user reset-password

Sends a password reset email to a user.

wp user reset-password john
wp user reset-password 1 2 3

Triggers the standard WordPress password reset flow. Useful when onboarding users or recovering access without setting a password directly.


wp user import-csv

Bulk creates or updates users from a CSV file.

wp user import-csv users.csv
wp user import-csv users.csv --send-email

CSV must include at minimum user_login and user_email columns. Optional columns: role, display_name, user_pass. --send-email sends welcome emails to all imported users. Essential for large-scale user onboarding.


Common Workflows

Create admin user for new environment

wp user create devadmin dev@local.test \
  --role=administrator \
  --user_pass=localpass

Quick admin setup when provisioning a local or staging environment. Faster than going through the installer.

Audit administrator accounts

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

See who has admin access and when their account was created. Run before a security review or before handing a site to a client.

Bulk import users from CSV

# users.csv format:
# user_login,user_email,role,display_name
# john,john@example.com,editor,John Doe

wp user import-csv users.csv --send-email

Onboard large groups of users without manual entry. Useful for editorial teams, course platforms, or membership sites.

Demote all editors to subscribers

wp user list --role=editor --field=ID | xargs -I {} wp user set-role {} subscriber

Pipe user IDs from wp user list into wp user set-role. Pattern for bulk role changes across many users.

Reset user password directly

wp user update john --user_pass=temporarypass123

Faster than the admin panel when a developer needs to quickly restore access during debugging.


Related Command Groups

  • Core — install WordPress and set the first admin user
  • Database — export before bulk user operations
  • Cache — flush after role or capability changes

Practice Cases