Od jakiegoś czasu miałem potrzebę zmieniać uprawnienia użytkownikom. Najczęściej potrzebowałem dodać użytkownikowi Redaktor większe uprawnienia do wybranego modułu. Dla przykładu – możliwość przeglądania i edytowania Użytkowników.
Próbowałem robić tego rodzaju zmiany przy pomocy pluginów, ale efekty były różne. Czasem plugin nie działał jak trzeba – np. pokazywał pozycję menu, ale po wejściu – pokazywał się komunikat o braku uprawnień.
W końcu trafiłem na rozwiązanie, które nie wymaga pluginów. Nie lubię ich instalować, bo nigdy nie wiadomo jaki kod za nimi się kryje i jak dany plugin obciaża system.
A oto magiczny kawałek kodu (dodaj do functions.php), który pozwoli na zmianę uprawnień użytkownika WordPress:
<?php
// get the the role object
$role_object = get_role('editor');
// add $cap capability to this role object
$role_object->add_cap('list_users');
$role_object->add_cap('edit_users');
?>
Pierwsza część – get the role object – pobiera użytkownika, którego uprawnienia chcemy zmienić (editor to użytkownik Redaktor)
Kolejna część – add_cap dodaje uprawnienia użytkownikowi.
Pełną listę uprawnień (capabilities) można znaleźć na stronie Codex:
http://codex.wordpress.org/Roles_and_Capabilities
Miłej zabawy z uprawnieniami użytkowników WordPress’a :)