HEX
Server: nginx/1.29.3
System: Linux 11979.bigscoots-wpo.com 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64
User: nginx (1068)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,proc_open,proc_close,popen,show_source,cmd# Do not modify this line # 1684243876
Upload Files
File: //bigscoots/wpo/extras/wpadmin_user.sh
#!/bin/bash
# Add WordPress Admin User Or Update w/ New Password

# TODO:
# Multisite Support Needed

WPUSERNAME='bigscoots'
WPEMAIL='[email protected]'
WPEMAIL_BACKUP='[email protected]'
WPPASSWORD=$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 20)

RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'


# Set proper flags
set_wp_cli_flags() {
  if wp option get siteurl --allow-root --skip-plugins --skip-themes >/dev/null 2>&1; then
    WPCLIFLAGS="--allow-root --skip-plugins --skip-themes"
  elif wp option get siteurl --allow-root --skip-plugins >/dev/null 2>&1; then
    WPCLIFLAGS="--allow-root --skip-plugins"
  elif wp option get siteurl --allow-root --skip-themes >/dev/null 2>&1; then
    WPCLIFLAGS="--allow-root --skip-themes"
  else
    WPCLIFLAGS="--allow-root"
  fi
}

# Obtain admin URL, first check for plugins that change name
set_wp_cli_flags

if wp ${WPCLIFLAGS} plugin is-active rename-wp-login 
then 
    ADMINPAGE=$(wp ${WPCLIFLAGS} option get rwl_page)
    SITEURL=$(wp ${WPCLIFLAGS} option get siteurl)/${ADMINPAGE}/
elif wp ${WPCLIFLAGS} plugin is-active wps-hide-login
then
    ADMINPAGE=$(wp ${WPCLIFLAGS} option get whl_page)
    SITEURL=$(wp ${WPCLIFLAGS} option get siteurl)/${ADMINPAGE}/
elif wp ${WPCLIFLAGS} plugin is-active wp-defender
then
    ADMINPAGE=$(wp ${WPCLIFLAGS} option get wd_masking_login_settings --format=json | jq -r 'fromjson | .mask_url')
    SITEURL=$(wp ${WPCLIFLAGS} option get siteurl)/${ADMINPAGE}/
elif wp ${WPCLIFLAGS} plugin is-active hide-login-page
then
    ADMINPAGE=$(wp ${WPCLIFLAGS} option get wbcr_hlp_login_path)
    SITEURL=$(wp ${WPCLIFLAGS} option get siteurl)/${ADMINPAGE}/
elif wp ${WPCLIFLAGS} plugin is-active better-wp-security
then
    ADMINPAGE=$(wp ${WPCLIFLAGS} option get itsec-storage --format=json | jq -r '.["hide-backend"].slug')
    SITEURL=$(wp ${WPCLIFLAGS} option get siteurl)/${ADMINPAGE}/
else
    SITEURL=$(wp ${WPCLIFLAGS} option get siteurl)/wp-admin/
fi 2>/dev/null


# Ensure Path is WP
if [[ ! $? -eq 0 ]]; then
    echo -e "${RED}FAILURE:${NC} Unable to locate WordPress site."
    exit 1
fi

# Create User
function WP_USER_CREATE () {
    WPUSERCREATE=$(wp ${WPCLIFLAGS} user create "${WPUSERNAME}" "${WPEMAIL}" --role=administrator --user_pass="${WPPASSWORD}" >/dev/null 2>&1)
    # If User Creation Exit Status == 0 (Creation Successful); Output PW; Else; Check if Email In-Use
    if [[ $? -eq 0 ]]; then
        echo -e "${GREEN}Success:${NC} The '${WPUSERNAME}' user was created on ${SITEURL}"
        echo "Password: ${WPPASSWORD}"
    else
        WPEMAILCHECK=$(wp ${WPCLIFLAGS} user list --field=user_email | grep "${WPEMAIL}" >/dev/null 2>&1)
        # If Email Check Exit Status == 0 (Email Exists); Switch to Secondary Email & Re-Run Function; Else; Output Failure
        if [[ $? -eq 0 ]]; then
            WPEMAIL=${WPEMAIL_BACKUP}
            WP_USER_CREATE
        else
            echo -e "${RED}FAILURE:${NC} The '${WPUSERNAME}' user could not be created on ${SITEURL}"
            exit 1
        fi
    fi
}

# Update User
function WP_USER_UPDATE () {
    WPUSERUPDATE=$(wp ${WPCLIFLAGS} user update "${WPUSERNAME}" --user_pass="${WPPASSWORD}" --role=administrator >/dev/null 2>&1)
    # If User Update Exit Status == 0 (Update Successful); Output PW; Else; Output Failure
    if [[ $? -eq 0 ]]; then
        echo -e "${GREEN}Success:${NC} The '${WPUSERNAME}' user was updated on ${SITEURL}"
        echo "New Password: ${WPPASSWORD}"
    else
        echo -e "${RED}FAILURE:${NC} The '${WPUSERNAME}' user could not be updated on ${SITEURL}"
        exit 1
    fi
}

# Remove User
function WP_USER_REMOVE () {
    screen -dmS "REMBSUSER" bash -c "sleep 21600 ; wp ${WPCLIFLAGS} user delete ${WPUSERNAME} --yes --path=${PWD} >/dev/null 2>&1"
}

# Check if WP User Exists
WPUSERCHECK=$(wp ${WPCLIFLAGS} user get ${WPUSERNAME} >/dev/null 2>&1)

# If User Check Exit Status == 0 (User Exists); Update User; Else; Create User
if [[ $? -eq 0 ]]; then
    WP_USER_UPDATE
    WP_USER_REMOVE
else
    WP_USER_CREATE
    WP_USER_REMOVE
fi