Dove sono definiti i Ruoli disponibili nel database wp_?

12 gen 2013, 04:01:56
Visualizzazioni: 63.6K
Voti: 27

Mi sono iscritto alla lista per testare una versione beta privata di un plugin che sto utilizzando su una rete multisite.

Gli autori del plugin hanno inserito del codice per aggiungere un ruolo personalizzato. Hanno un bug che rimuove la possibilità di assegnare a un utente qualsiasi ruolo eccetto il loro ruolo personalizzato.

Quando visito ../wp-admin/network/site-users.php, i menu a tendina "Aggiungi Utente" mostrano solo il ruolo aggiunto da questo plugin. Il menu a tendina per modificare il ruolo mostra tutti i ruoli predefiniti di WP, più alcuni ruoli extra aggiunti da questo e altri plugin. Se provo a cambiare un utente a uno di questi ruoli, ottengo una pagina di errore "Non puoi assegnare agli utenti quel ruolo".

Ne ho discusso con lo sviluppatore, e sembrano perplessi.

Ho cercato nel mio database e nel codex, ma non riesco a trovare dove sono definiti i ruoli validi.

0
Tutte le risposte alla domanda 2
3
47

I ruoli utente sono memorizzati nella tabella wp_options.

Cerca il nome dell'opzione wp_user_roles nella tabella wp_options.

12 gen 2013 05:09:51
Commenti

Tieni presente che option_name potrebbe contenere il prefisso del tuo database invece di wp_. Questo era il caso per il mio database.

Eric K Eric K
8 gen 2021 01:02:24

Potrebbe anche avere un ID blog se sei su multisite, ad esempio "wp_37_user_roles".

Matt Raines Matt Raines
1 lug 2021 16:55:15

Sì, se sei su multisite e hai un ID blog, sia la tabella che l'option_name includerebbero l'ID blog. Quindi usa ad esempio questa query: select * from wp_37_options where option_name = 'wp_37_user_roles';

Tyler Collier Tyler Collier
2 nov 2021 22:43:03
5
27

I ruoli degli utenti sono memorizzati nella tabella wp_user_meta

Per verificare i ruoli degli utenti, per prima cosa, controlla l'ID dell'utente nella tabella wp_users (Nome colonna ID)

Ora vai alla tabella wp_usermeta e cerca dove la colonna user_id è uguale all'ID che corrisponde all'ID della tabella wp_users.

Otterrai un elenco di righe con i metadati dell'utente selezionato, la riga con meta_key come wp_capabilities definisce il ruolo dell'utente.

Il valore di wp_capabilities per

  • Amministratore : a:1:{s:13:"administrator";b:1;}
  • Cliente WooCommerce : a:1:{s:8:"customer";b:1;}
20 lug 2017 09:57:22
Commenti

La tua risposta riguarda l'assegnazione di un ruolo a un utente. L'OP stava chiedendo riguardo alle definizioni dei ruoli stessi, che sono archiviate in wp_options.

Brett Donald Brett Donald
1 ott 2019 06:06:49

che a:1:{s:13:"administrator";b:1;} sia una sorta di stringa disordinata, cosa sono tutti quei numeri intorno alla parte importante?

Johnny Rockex Johnny Rockex
31 mag 2021 16:37:16

@Johnny Rockex Si tratta di dati serializzati, un modo per memorizzare più di un valore in una cella del database... spesso non molto apprezzato, in quanto può rendere le cose più difficili. La "s" sta per "stringa" (di 13 caratteri), la "b" per Booleano - Cerca Data Serialisation in MySQL su Google per i dettagli.

mayersdesign mayersdesign
27 lug 2021 19:42:43

@mayersdesign Posso capire le espressioni perplesse, il mio istinto sarebbe quello di ristrutturare le tabelle per avere valori singoli in ogni campo, ma chissà, funziona.

Johnny Rockex Johnny Rockex
28 lug 2021 14:22:33

Non risponde alla domanda dell'OP, ma era quello che stavo cercando. Grazie!

Davey Davey
28 ago 2024 13:26:16