Unde sunt definite Rolurile disponibile în baza de date wp_?
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.

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.

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

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;}

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.

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

@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 Î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ă.
