1. Strona główna
  2. Baza wiedzy
  3. WooCommerce Wholesale Prices Premium
  4. Panel administracyjny
  5. Jak pozwolić menedżerom sklepów edytować użytkowników w WooCommerce

Jak pozwolić menedżerom sklepów edytować użytkowników w WooCommerce

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_customer lub inne 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_hurtowy
  • hurtowy_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_users
  • create_users
  • add_users
  • promote_users
  • edit_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.php aktywnego 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.

Czy ten artykuł był pomocny?

Powiązane artykuły

Zakończ Zakup