Skip to main content

Additional User Operations

Overview

Beyond CRUD, WP-CLI supports advanced user workflows: metadata management, session control, capability audits, import/export pipelines, and multisite-aware automation.

What Counts as "Additional" User Operations​

These tasks are essential in professional environments:

  • User metadata operations (profile and plugin-specific data)
  • Session management (inspect and destroy login sessions)
  • Application password workflows for API access
  • Bulk import/export for migrations and audits
  • Multisite user assignment and role control

User Metadata Management​

Read User Meta​

# List all metadata for a user
wp user meta list john

# Get specific key
wp user meta get john nickname

Update or Create Meta​

# Update timezone preference
wp user meta update john locale en_US

# Set custom CRM identifier
wp user meta update john crm_contact_id 83924

Delete Meta Keys​

# Remove stale metadata
wp user meta delete john legacy_plugin_flag
Metadata Hygiene

Periodically remove obsolete meta keys left behind by removed plugins to keep user records clean.

Session Management​

List Active Sessions​

wp user session list john --fields=token,login_time,expiration --format=table

Destroy Sessions (Security Response)​

# Destroy one session token
wp user session destroy john <token>

# Destroy all sessions for user (force re-login everywhere)
wp user session destroy john --all

Destroy Sessions for All Users​

# Useful after credential incident
wp user session destroy --all

Application Password Operations​

Application passwords are useful for API integrations when full credentials should not be shared.

# Create app password for a user
wp user application-password create john "CI Integration"

# List app passwords
wp user application-password list john

# Delete one app password by UUID
wp user application-password delete john <uuid>

# Revoke all app passwords
wp user application-password delete john --all
Credential Handling

Store generated application passwords in a secret manager, not in scripts or shell history.

Bulk Import and Export Workflows​

Export User Data​

# Export essential fields to CSV
wp user list --fields=ID,user_login,user_email,roles,user_registered --format=csv > users-export.csv

# Export JSON for systems integration
wp user list --format=json > users-export.json

Generate Controlled Test Data​

# Create 50 testing subscribers
wp user generate --count=50 --role=subscriber

# Verify generated users
wp user list --role=subscriber --format=count

Bulk Update from a Scripted List​

#!/bin/bash
# set-editor-role-from-list.sh

while IFS= read -r login; do
wp user set-role "$login" editor
done < editors.txt

Multisite User Operations​

Add Existing User to a Subsite​

# Add user to subsite with role
wp --url=shop.example.com user set-role john shop_manager

Audit Roles Per Subsite​

#!/bin/bash
# multisite-role-audit.sh

for url in $(wp site list --field=url); do
echo "=== $url ==="
wp --url="$url" user list --fields=user_login,roles --format=table
done

Remove High Privileges from a Subsite​

wp --url=blog.example.com user set-role contractor contributor

Real-World Scenarios​

Scenario 1: Incident Response After Account Leak​

# Rotate password
wp user update compromised-user --user_pass='Compromised!Fix2026'

# Revoke active sessions
wp user session destroy compromised-user --all

# Revoke API app passwords
wp user application-password delete compromised-user --all

Scenario 2: Standardize Profile Metadata​

#!/bin/bash
# set-default-locale-for-editors.sh

for login in $(wp user list --role=editor --field=user_login); do
wp user meta update "$login" locale en_US
done

Scenario 3: Remove Dormant Test Accounts​

# Delete known test users and reassign content
wp user delete test1 test2 test3 --reassign=1

Scenario 4: API Integration Lifecycle​

# Create app password for automation user
wp user application-password create api-bot "Nightly Sync"

# Later, revoke when integration is retired
wp user application-password delete api-bot --all

Best Practices​

1. Treat Sessions as Security Controls​

When passwords are changed after suspicious activity, always destroy sessions.

2. Keep Metadata Intentional​

Document custom user meta keys and remove deprecated keys during maintenance.

3. Use Least Privilege in Multisite​

Grant subsite-specific roles rather than broad admin privileges.

4. Prefer Application Passwords for Integrations​

Avoid sharing primary login credentials with automation systems.

5. Make Bulk Changes Scriptable and Reversible​

Export before and after snapshots for rollback/audit.

Troubleshooting​

Command Not Available for Sessions or App Passwords​

# Confirm WP-CLI command groups
wp help user

Update WP-CLI and WordPress core if subcommands are missing.

Metadata Not Changing as Expected​

wp user meta get john locale
wp user meta list john --format=table

Check key spelling and plugin-specific meta behavior.

Multisite Role Changes Seem Incorrect​

# Verify exact site context
wp --url=shop.example.com option get siteurl
wp --url=shop.example.com user get john --field=roles

Quick Reference​

# Metadata
wp user meta list <user>
wp user meta get <user> <key>
wp user meta update <user> <key> <value>
wp user meta delete <user> <key>

# Sessions
wp user session list <user>
wp user session destroy <user> <token>
wp user session destroy <user> --all
wp user session destroy --all

# Application passwords
wp user application-password create <user> "<name>"
wp user application-password list <user>
wp user application-password delete <user> <uuid>
wp user application-password delete <user> --all

# Export
wp user list --format=csv > users.csv
wp user list --format=json > users.json

Summary​

AreaCore CapabilityTypical Use Case
User MetaRead/update/delete profile metadataData cleanup, integrations
SessionsRevoke active loginsIncident response
App PasswordsScoped API credentialsAutomation and integrations
Bulk OperationsScript user updates and exportsMigrations, governance
MultisitePer-site role managementNetwork operations
Key Takeaway

Advanced user operations turn WP-CLI from a convenience tool into an operational control plane for security, governance, and automation.

Next Steps​