Unde sunt definite Rolurile disponibile în baza de date wp_?

12 ian. 2013, 04:01:56
Vizualizări: 63.6K
Voturi: 27

Am ajuns pe lista de testare pentru o versiune beta privată a unui plugin pe care îl folosesc într-o rețea multi-site.

Autorii plugin-ului au cod pentru adăugarea unui rol personalizat. Aceștia au o eroare care elimină posibilitatea de a atribui unui utilizator orice alt rol în afară de rolul lor personalizat.

Când accesez ../wp-admin/network/site-users.php, meniurile dropdown pentru "Adaugă Utilizator" afișează doar rolul adăugat de acest plugin. Meniul dropdown pentru schimbarea rolului arată toate rolurile implicite WordPress, plus câteva roluri suplimentare adăugate de acest plugin și alte plugin-uri. Dacă încerc să schimb rolul unui utilizator la unul dintre aceste roluri, primesc o pagină de eroare cu mesajul "Nu poți atribui utilizatorilor acest rol".

Am discutat acest aspect cu dezvoltatorul și par descumpăniți.

Am căutat prin baza mea de date și prin codex, dar nu pot găsi unde sunt definite rolurile valide.

0
Toate răspunsurile la întrebare 2
3
47

Rolurile utilizatorilor sunt stocate în tabelul wp_options.

Căutați numele opțiunii wp_user_roles în tabelul wp_options.

12 ian. 2013 05:09:51
Comentarii

Vă rugăm să rețineți că option_name poate conține prefixul bazei de date în loc de wp_. Acesta a fost cazul în baza mea de date.

Eric K Eric K
8 ian. 2021 01:02:24

De asemenea, poate avea un ID de blog dacă utilizați multisite, de exemplu "wp_37_user_roles".

Matt Raines Matt Raines
1 iul. 2021 16:55:15

Da, dacă utilizați multisite și aveți un ID de blog, atât tabela cât și option_name vor include ID-ul blogului. Deci folosiți de exemplu această interogare: select * from wp_37_options where option_name = 'wp_37_user_roles';

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

Rolurile utilizatorilor sunt stocate în tabelul wp_user_meta

Pentru a verifica rolurile utilizatorilor, mai întâi, găsiți ID-ul utilizatorului în tabelul wp_users (coloana numită ID)

Acum accesați tabelul wp_usermeta și căutați unde coloana user_id este egală cu ID-ul care se potrivește cu ID din tabelul wp_users.

Veți obține o listă de rânduri cu metadatele utilizatorului selectat, rândul cu meta_key ca wp_capabilities definește rolul utilizatorului.

Valoarea lui wp_capabilities pentru:

  • Administrator : a:1:{s:13:"administrator";b:1;}
  • Client WooCommerce : a:1:{s:8:"customer";b:1;}
20 iul. 2017 09:57:22
Comentarii

Răspunsul tău se referă la atribuirea unui rol unui utilizator. OP întreba despre definițiile rolurilor în sine, care sunt stocate în wp_options.

Brett Donald Brett Donald
1 oct. 2019 06:06:49

că a:1:{s:13:"administrator";b:1;} este un fel de șir dezordonat, care sunt toate numerele în jurul esenței?

Johnny Rockex Johnny Rockex
31 mai 2021 16:37:16

@Johnny Rockex Aceasta este date serializate - o modalitate de a stoca mai multe valori într-o celulă de bază de date... adesea privită cu o oarecare rezervă, deoarece poate face viața mai dificilă. "s" reprezintă "string" (șir de 13 caractere), "b" este pentru Boolean - Căutați pe Google Data Serialisation in MySQL pentru detalii.

mayersdesign mayersdesign
27 iul. 2021 19:42:43

@mayersdesign Înțeleg expresiile de dezaprobare, instinctul meu ar fi să restructurez tabelele pentru a avea valori unice în fiecare câmp, dar cine știe, funcționează.

Johnny Rockex Johnny Rockex
28 iul. 2021 14:22:33

Nu răspunde la întrebarea OP-ului, dar era exact ceea ce căutam. Mulțumesc!

Davey Davey
28 aug. 2024 13:26:16