Vanaf WooCommerce versie 3.4.6 werd een beveiligingsoplossing geïntroduceerd die Winkelbeheerders beperkt in het bewerken van andere gebruikers, behalve die met de rol Klant.
Dit betekent dat Winkelbeheerders standaard geen gebruikers kunnen bewerken die groothandelsrollen hebben die zijn aangemaakt door plugins zoals WooCommerce Wholesale Prices of Wholesale Prices Premium.
Stel dat u wilt dat uw Winkelbeheerders gebruikers met groothandelsrollen kunnen bewerken (en promoten). In dat geval kunt u deze functionaliteit eenvoudig inschakelen door de volgende code aan uw site toe te voegen.
Winkelbeheerders in staat stellen groothandelsgebruikers te bewerken
Voeg het volgende codefragment toe aan het functions.php bestand van uw thema, uw child theme, of een aangepaste plugin.
/**
* 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);
Wat dit codefragment doet
- Herstelt gebruikersbewerkingsmogelijkheden voor de rol Winkelbeheerder, waardoor ze gebruikers kunnen bekijken, bewerken en promoten.
- Voegt ondersteuning toe voor groothandelsrollen, zoals
wholesale_customerofandere aangepaste groothandelsrollen. - Behoudt achterwaartse compatibiliteit met oudere versies van de Wholesale Prices Premium plugin die een andere filter gebruiken.

U kunt groothandelsrollen toevoegen of verwijderen uit de $wholesale_roles array naar behoefte om deze aan te passen aan de configuratie van uw site.
Veelgestelde vragen
Hoe laat ik Winkelbeheerders groothandelsgebruikers bewerken in WooCommerce?
Voeg het meegeleverde PHP-codefragment toe aan het functions.php bestand van uw child theme of aan een aangepaste plugin. Dit herstelt de bewerkingsrechten die sinds WooCommerce 3.4.6 beperkt waren, waardoor Winkelbeheerders profielen van groothandelsgebruikers direct kunnen openen en beheren.
Werkt deze oplossing ook met WooCommerce Wholesale Prices Premium?
Ja. De code ondersteunt zowel de gratis als de premium versie van WooCommerce Wholesale Prices, evenals oudere releases van Wholesale Suite. Het bevat een achterwaarts compatibele functie om oudere installaties automatisch af te handelen.
Tot welke groothandelsrollen hebben Winkelbeheerders toegang met deze code?
Standaard is de filter van toepassing op de volgende rollen:
groothandelsklantgroothandel_goud
U kunt de toegang uitbreiden door meer rol-slugs toe te voegen aan de $wholesale_roles array in het bestand - er zijn geen extra tools nodig.
Kunnen Winkelbeheerders hiermee ook nieuwe groothandelsaccounts aanmaken?
Ja. Het codefragment verleent de volgende mogelijkheden:
gebruikers weergevengebruikers aanmakengebruikers toevoegengebruikers promotengebruikers bewerken
Dit stelt Winkelbeheerders in staat om nieuwe accounts te registreren en bestaande accounts te beheren zonder dat hiervoor volledige beheerdersrechten nodig zijn.
Waarom kan mijn Winkelbeheerder nog steeds geen groothandelsprofielen zien na het toepassen van de oplossing?
Als het probleem zich blijft voordoen:
- Zorg ervoor dat het PHP-codefragment is toegevoegd aan het
functions.phpbestand van een actief child theme of aan een speciale plugin. - Controleer of WooCommerce Wholesale Prices is geïnstalleerd en geactiveerd, aangezien de oplossing afhankelijk is van de configuratie ervan.
Hulp Nodig?
Als je een vraag hebt of tegen problemen aanloopt, staan we klaar om te helpen.
- Premium gebruikers: Open een ondersteuningsticket
- Gratis gebruikers: Bezoek ons communityforum
