Od wersji WooCommerce 3.4.6 wprowadzono poprawkę bezpieczeństwa, która ogranicza Menedżerom Sklepów możliwość edytowania innych użytkowników, z wyjątkiem tych z rolą Klient.
Oznacza to, że domyślnie Menedżerowie Sklepów nie mogą edytować użytkowników posiadających role hurtowe utworzone przez wtyczki takie jak WooCommerce Wholesale Prices lub WooCommerce Wholesale Prices Premium.
Jeśli chcesz, aby Twoi Menedżerowie Sklepów mogli edytować (i promować) użytkowników z rolami hurtowymi. W takim przypadku możesz łatwo włączyć tę funkcjonalność, dodając następujący kod do swojej witryny.
Jak umożliwić menedżerom sklepów edytowanie użytkowników hurtowych w WooCommerce
Dodaj poniższy fragment do pliku functions.php swojego motywu, motywu potomnego lub wtyczki niestandardowej.
/**
* Allow Shop Managers to edit and promote wholesale users.
*/
function wws_add_shop_manager_user_editing_capability() {
$shop_manager = get_role('shop_manager');
if ( ! $shop_manager ) {
return;
}
// Only add capabilities if they don't already exist
if ( ! $shop_manager->has_cap('edit_users') ) {
// Core WP + WooCommerce capabilities
$shop_manager->add_cap('list_users');
$shop_manager->add_cap('edit_users');
$shop_manager->add_cap('create_users');
$shop_manager->add_cap('promote_users');
$shop_manager->add_cap('add_users');
}
}
add_action('init', 'wws_add_shop_manager_user_editing_capability');
/**
* Allow Shop Managers to edit wholesale roles.
*/
function wws_allow_shop_manager_wholesale_roles( $roles ) {
$wholesale_roles = array(
'wholesale_customer',
'wholesale_gold',
);
foreach ( $wholesale_roles as $role ) {
// Only add if the role exists in WordPress
if ( get_role( $role ) && ! in_array( $role, $roles, true ) ) {
$roles[] = $role;
}
}
return $roles;
}
add_filter('woocommerce_shop_manager_editable_roles', 'wws_allow_shop_manager_wholesale_roles', 20);
/**
* Some versions of Wholesale Prices Premium use their own editable roles filter.
* Note: This filter may not exist in current versions - keeping for backward compatibility.
*/
function wws_allow_shop_manager_wholesale_roles_wholesale_suite( $roles ) {
$wholesale_roles = array(
'wholesale_customer',
'wholesale_gold',
);
foreach ( $wholesale_roles as $role ) {
// Only add if the role exists in WordPress
if ( get_role( $role ) && ! in_array( $role, $roles, true ) ) {
$roles[] = $role;
}
}
return $roles;
}
add_filter('wwp_shop_manager_editable_roles', 'wws_allow_shop_manager_wholesale_roles_wholesale_suite', 20);
Co robi ten fragment kodu
- Przywraca możliwości edycji użytkowników dla roli Menedżera Sklepu, pozwalając im na przeglądanie, edytowanie i promowanie użytkowników.
- Dodaje obsługę ról hurtowych, takich jak
wholesale_customerlubinne niestandardowe role hurtowe. - Zachowuje kompatybilność wsteczną ze starszymi wersjami wtyczki WooCommerce Wholesale Prices Premium, które używają innego filtra.

Możesz dodawać lub usuwać role hurtowe z tablicy $wholesale_roles w razie potrzeby, aby dopasować je do konfiguracji Twojej witryny.
Często zadawane pytania
Jak mogę pozwolić menedżerom sklepów edytować użytkowników hurtowych w WooCommerce?
Dodaj dostarczony fragment PHP do pliku functions.php Twojego motywu potomnego lub do niestandardowej wtyczki. Przywraca to dostęp do edycji, który został ograniczony od wersji WooCommerce 3.4.6, umożliwiając menedżerom sklepów bezpośrednie otwieranie i zarządzanie profilami użytkowników hurtowych.
Czy ta poprawka działa również z WooCommerce Wholesale Prices Premium?
Tak. Kod obsługuje zarówno darmową, jak i premium wersję WooCommerce Wholesale Prices, a także starsze wersje Wholesale Suite. Zawiera funkcję kompatybilną wstecznie, która automatycznie obsługuje starsze konfiguracje.
Do jakich ról hurtowych mogą uzyskać dostęp menedżerowie sklepów dzięki temu kodowi?
Domyślnie filtr dotyczy następujących ról:
klient_hurtowyhurtowy_złoty
Możesz rozszerzyć dostęp, dodając więcej identyfikatorów ról do tablicy $wholesale_roles w pliku — nie są potrzebne żadne dodatkowe narzędzia.
Czy menedżerowie sklepów mogą również tworzyć nowe konta hurtowe za pomocą tego?
Tak. Fragment przyznaje następujące uprawnienia:
list_userscreate_usersadd_userspromote_usersedit_users
Pozwala to menedżerom sklepów na rejestrowanie nowych kont i zarządzanie istniejącymi bez potrzeby posiadania pełnych uprawnień administratora.
Dlaczego mój menedżer sklepu nadal nie widzi profili hurtowych po zastosowaniu poprawki?
Jeśli problem nadal występuje:
- Upewnij się, że fragment PHP został dodany do pliku
functions.phpaktywnego motywu potomnego lub dedykowanej wtyczki. - Potwierdź, że WooCommerce Wholesale Prices jest zainstalowany i aktywowany, ponieważ rozwiązanie zależy od jego konfiguracji.
Potrzebujesz pomocy?
Jeśli masz pytanie lub napotkasz jakiekolwiek problemy, jesteśmy tutaj, aby pomóc.
- Użytkownicy wersji Premium: Otwórz zgłoszenie wsparcia
- Użytkownicy wersji darmowej: Odwiedź nasze forum społecznościowe
