1. Casa
  2. Knowledge Base
  3. WooCommerce Wholesale Prices Premium
  4. Backend
  5. Come Consentire ai Responsabili del Negozio di Modificare gli Utenti in WooCommerce

Come Consentire ai Responsabili del Negozio di Modificare gli Utenti in WooCommerce

A partire da WooCommerce versione 3.4.6, è stata introdotta una correzione di sicurezza che limita i Responsabili del negozio dall'editare altri utenti, ad eccezione di quelli con il ruolo di Cliente.

Ciò significa che, per impostazione predefinita, i Responsabili del negozio non possono modificare gli utenti che hanno ruoli all'ingrosso creati da plugin come WooCommerce Wholesale Prices o Wholesale Prices Premium.

Supponiamo che tu voglia che i tuoi Responsabili del negozio siano in grado di modificare (e promuovere) utenti con ruoli all'ingrosso. In tal caso, puoi abilitare facilmente questa funzionalità aggiungendo il seguente codice al tuo sito.

Come consentire ai Responsabili del negozio di modificare gli utenti all'ingrosso

Aggiungi il seguente snippet al file functions.php del tuo tema, al tuo tema child o a un plugin personalizzato.

/**
 * 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);


Cosa fa questo snippet

  • Ripristina le capacità di modifica utente per il ruolo di Responsabile del negozio, consentendo loro di visualizzare, modificare e promuovere gli utenti.
  • Aggiunge il supporto per i ruoli all'ingrosso, come wholesale_customer o altri ruoli personalizzati all'ingrosso.
  • Mantiene la compatibilità con le versioni precedenti delle versioni precedenti del plugin Wholesale Prices Premium che utilizzano un filtro diverso.

Puoi aggiungere o rimuovere ruoli all'ingrosso dall'array $wholesale_roles secondo necessità per adattarli alla configurazione del tuo sito.

Domande frequenti

Come faccio a far sì che i Responsabili del negozio modifichino gli utenti all'ingrosso in WooCommerce?
Aggiungi lo snippet PHP fornito al file functions.php del tuo tema child o a un plugin personalizzato. Questo ripristina l'accesso alla modifica che è stato limitato da WooCommerce 3.4.6, consentendo ai Responsabili del negozio di aprire e gestire direttamente i profili utente all'ingrosso.

Questa correzione funziona anche con WooCommerce Wholesale Prices Premium?
Sì. Il codice supporta sia la versione gratuita che quella premium di WooCommerce Wholesale Prices, nonché le versioni precedenti di Wholesale Suite. Include una funzione retrocompatibile per gestire automaticamente le configurazioni legacy.

A quali ruoli all'ingrosso possono accedere i Responsabili del negozio con questo codice?
Per impostazione predefinita, il filtro si applica ai seguenti ruoli:

  • cliente_all_ingrosso
  • oro_all_ingrosso

Puoi espandere l'accesso aggiungendo altri slug di ruolo all'array $wholesale_roles nel file, senza bisogno di strumenti aggiuntivi.

I Responsabili del negozio possono anche creare nuovi account all'ingrosso usando questo?
Sì. Lo snippet concede le seguenti autorizzazioni:

  • elenco_utenti
  • crea_utenti
  • aggiungi_utenti
  • promuovi_utenti
  • modifica_utenti

Ciò consente ai Responsabili del negozio di registrare nuovi account e gestire quelli esistenti senza richiedere privilegi di amministratore completi.

Perché il mio Responsabile del negozio non riesce ancora a vedere i profili all'ingrosso dopo aver applicato la correzione?
Se il problema persiste:

  • Assicurati che lo snippet PHP sia stato aggiunto al file functions.php di un tema child attivo o a un plugin dedicato.
  • Conferma che WooCommerce Wholesale Prices sia installato e attivato, poiché la soluzione dipende dalla sua configurazione.

Serve Aiuto?

Se hai una domanda o riscontri problemi, siamo qui per aiutarti.

Questo articolo è stato utile?

Articoli Correlati

Completa il tuo acquisto