Questo script SH viene in nostro soccorso:
#!/bin/bash
# usalo per RIMUOVERE UTENTI CON UNA CERTA EMAIL @dominio-da-eliminare.com
# Trova gli utenti con email che contengono "@dominio-da-eliminare.com" e cancella ciascuno di essi
wp user list --field=ID,user_email --allow-root | while read -r line; do
user_id=$(echo "$line" | awk '{print $1}')
user_email=$(echo "$line" | awk '{print $2}')
# Controlla se l'email contiene "@dominio-da-eliminare.com"
if [[ "$user_email" == *"@dominio-da-eliminare.com"* ]]; then
echo "Eliminazione utente con ID: $user_id e email: $user_email"
# Elimina l'utente senza chiedere conferma
wp user delete "$user_id" --yes --allow-root
fi
done
Teniamo presente che lo script si può personalizzare per ottenere un elenco di utenti corrispondente ad altre caratteristiche, che possono provenire anche da comandi cli personalizzati.
Inoltre, per coloro che hanno una bella banca dati e che vogliono lasciare il processo attivo, senza necessità di stare collegato contestualmente via console (ssh), che il comando può essere lanciato con screen.
Spiegazione dello script
- Elenco ID degli utenti: il comando
wp user list --field=ID --allow-root
restituisce una lista di ID di tutti gli utenti. - Ciclo sugli ID degli utenti: usa
while read -r user_id
per iterare su ciascun ID utente. - Controllo dell’email: per ogni utente, il comando
wp user get "$user_id" --field=user_email --allow-root
recupera l’email dell’utente. Successivamente, viene eseguito un controllo per verificare se l’email contiene la stringa"@pippo."
. - Eliminazione dell’utente: se l’email contiene “@pippo.”, l’utente viene eliminato con
wp user delete "$user_id" --reassign=0 --allow-root
. L’opzione--reassign=0
assicura che i contenuti creati da questi utenti siano assegnati all’utente con ID 0 (tipicamente “Admin”).
ATTENZIONE
- Back up: Assicurati di effettuare un backup del database prima di eseguire questo script, per evitare di perdere dati accidentalmente.
- Log delle eliminazioni: L’output del comando
echo
ti aiuterà a monitorare quali utenti vengono eliminati. - Lo script utilizza la WP-CLI.
Spero di essere stato utile.