Supporto » Sviluppare con WordPress » creare un button “elimina account”

  • arsenalemusica

    (@arsenalemusica)


    Nel tema che sto utilizzando (purtroppo senza supporto) gli sviluppatori hanno dimenticato di includere una funzione che permetta agli utenti di eliminare il loro account. Solo Admin può farlo dal backend, ed in tale circostanza mi viene chiesta conferma di riassegnazione dei contenuti dell’utente ad Admin stesso (oppure ad un altro utente). Ho dunque necessità di creare un button che permetta agli utenti di abbandonare il sito, assegnando automaticamente ad Admin i loro contenuti (posts, media, etc.).
    Immaginando che la gestione degli utenti venga sempre scritta con riguardo agli standard WP, esiste una funzione base nel Codex oppure occorre hackerare il tema?

Stai vedendo 3 repliche - dal 1 al 3 (di 3 totali)
  • Ciao @arsenalemusica,

    WordPress mette a disposizione una funzione proprio per eliminare un utente e scegliere se riassegnare i contenuti (tramite il secondo parametro): wp_delete_user().

    In questo articolo viene spiegato come creare un plugin per permettere agli utenti di eliminare il proprio account, potrebbe essere utile come spunto.

    Spero di essere stato d’aiuto,

    Thomas

    Nel ringraziarti per il suggerimento, mi sembra che la funzione wp_delete_user faccia quello che già fa il mio tema, ovvero permette di riassegnare il contenuto di uno User ad Admin, nel momento che quest’ultimo cancella lo User dal backend.
    Il plugin che avevo già notato, sembra invece permettere allo user di cancellare il suo account, cancellando completamente anche il suo contenuto.
    Io avrei bisogno di una via intermedia: permettere all’utente, questo si, di cancellare il suo account dal frontend, ma passare la gestione dello stesso ad Admin. Praticamente mi serve un wp_delete_user che lavori dal frontend ma metta tutto il contenuto di quell’account in stand-by per Admin. L’utente può anche credere che i suoi dati siano eliminati, ma devono essere messi “in attesa di conferma” da Admin.

    Il plugin spiegato nell’articolo usa sempre la funzione wp_delete_user(), ma non sfrutta il secondo parametro per la rassegnazione dei contenuti. Per aggiungere anche questa funzionalità bisogna aggiungere un secondo parametro alla funzione, cioè l’id dell’utente (es. un amministratore) a cui assegnare tutti i contenuti prima di eliminare l’account dell’utente corrente.

    Quindi, partendo da qualcosa del genere (codice estratto dal plugin):

    $deleted = wp_delete_user( $user_id );

    settando anche il secondo parametro si ha:

    $deleted = wp_delete_user( $user_id, $admin_id );

    dove $admin_id è l’id dell’utente a cui assegnare automaticamente tutti i contenuti di $user_id. In questo modo vengono prima riassegnati i contenuti e poi eliminato l’account dell’utente.

    Spero di essere riuscito a spiegarmi bene 🙂

    Thomas

Stai vedendo 3 repliche - dal 1 al 3 (di 3 totali)
  • Devi essere collegato per rispondere a questo topic.