Przed Wami kolejny wpis z cyklu „drobna rzecz, a przydatna”, i jak to często w takich przypadkach bywa – pomysł na wpis wziął się z potrzeby, i będzie niejako kontynuacją wpisu dotyczącego dostępu do ustawień WooCommerce dla wybranych grup użytkowników, z tym, że tym razem będziemy nakładać blokadę na dostępne podczas dodawania nowego użytkownika role (użytkowników).

WordPress i ograniczone tworzenie nowych użytkowników

W jednym ze sklepów którymi zarządzam pojawiła się potrzeba by zwiększyć trochę uprawnienia obsłudze, o możliwość dodawania/tworzenia nowych użytkowników – to akurat można zrobić za pomocą licznych wtyczek, czy za pomocą własnego kawałka kodu (może kiedyś jakiś wpis o tym będzie). Większość tego typu programów opiera się na dostępnych w WordPressie (i dodatkach, jak np. WooCommerce) uprawnieniach, które możemy przypisywać (bądź zabierać) zarówno pojedynczym użytkownikom, jak i konkretnym grupom (role).

Problem pojawia się w sytuacji, gdy potrzebujemy wyjść poza te ramy – tu wprawdzie zazwyczaj w tego typu wtyczkach nic sobie nie wyklikamy (choć nie wykluczam, że są i tego typu wtyczki z interfejsem graficznym), ale na szczęście wystarczy kilka linijek kodu, które mam nadzieję wszyscy wiedzą jak możemy dodać do swojej strony.

add_filter( 'editable_roles', 'webinsider_wp_limit_user_create_user_role' );
function webinsider_wp_limit_user_create_user_role( $roles ){
    $user = wp_get_current_user();
    if( in_array( 'shop_manager', $user->roles )){
        unset( $roles[ 'administrator' ]);
        unset( $roles[ 'shop_manager' ]);
        unset( $roles[ 'author' ]);
        unset( $roles[ 'editor' ]);
        unset( $roles[ 'contributor' ]);
    }
    return $roles;
}

W powyższym przykładzie użytkownik należący do grupy „menedżer sklepu” (shop_manager) podczas tworzenia nowego użytkownika nie będzie mógł dla niego wybrać roli/uprawnień przypisanych do:

  • Administrator (administrator)
  • Menedżer sklepu (shop_manager)
  • Autor (author)
  • Edytor (editor)
  • Współpracownik (contributor)

Dostępne są wszystkie pozostałe, np. „klient” (customer), co akurat w tym przypadku jest wystarczającą rolą dla tworzonych użytkowników.

Można też ten kod zmodyfikować – zamiast sprawdzać do jakiej grupy należy użytkownik, sprawdzić, do jakiej nie należy:

add_filter( 'editable_roles', 'webinsider_wp_limit_user_create_user_role' );
function webinsider_wp_limit_user_create_user_role( $roles ){
    $user = wp_get_current_user();
    if( !in_array( 'administrator', $user->roles )){
        unset( $roles[ 'administrator' ]);
        unset( $roles[ 'shop_manager' ]);
        unset( $roles[ 'author' ]);
        unset( $roles[ 'editor' ]);
        unset( $roles[ 'contributor' ]);
    }
    return $roles;
}

W tym przypadku zasady (ograniczenia) są identyczne, z tym, że dotyczą każdego użytkownika, który nie należy do grupy „Administratorzy” (administrator).

Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Młody Szymon dzięki motywowi Divi od Elegant Themes zrobił stronę dla firmy ojca
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Na WebInsider.pl korzystamy z motywu Extra od Elegant Themes. Zobacz dlaczego...