1. Accueil
  2. Base de connaissances
  3. WooCommerce Wholesale Prices Premium
  4. Backend
  5. Comment permettre aux responsables de boutique de modifier les utilisateurs dans WooCommerce

Comment permettre aux responsables de boutique de modifier les utilisateurs dans WooCommerce

À partir de la version 3.4.6 de WooCommerce, un correctif de sécurité a été introduit, limitant la capacité des Gérants de boutique à modifier les autres utilisateurs, à l'exception de ceux ayant le rôle de Client.

Cela signifie que, par défaut, les Gérants de boutique ne peuvent pas modifier les utilisateurs ayant des rôles de vente en gros créés par des extensions telles que WooCommerce Wholesale Prices ou Wholesale Prices Premium.

Supposons que vous souhaitiez que vos Gérants de boutique soient en mesure de modifier (et de promouvoir) les utilisateurs ayant des rôles de vente en gros. Dans ce cas, vous pouvez facilement activer cette fonctionnalité en ajoutant le code suivant à votre site.

Comment permettre aux Gérants de boutique de modifier les utilisateurs en gros

Ajoutez l'extrait de code suivant au fichier functions.php de votre thème, à votre thème enfant, ou à un plugin personnalisé.

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


Ce que fait cet extrait de code

  • Rétablit les capacités de modification d'utilisateur pour le rôle de Gérant de boutique, leur permettant de voir, modifier et promouvoir les utilisateurs.
  • Ajoute la prise en charge des rôles de vente en gros, tels que wholesale_customer ou d'autres rôles personnalisés de vente en gros.
  • Maintient la compatibilité ascendante avec les anciennes versions du plugin Wholesale Prices Premium qui utilisent un filtre différent.

Vous pouvez ajouter ou supprimer des rôles de vente en gros du tableau $wholesale_roles selon vos besoins pour correspondre à la configuration de votre site.

Questions fréquemment posées

Comment puis-je permettre aux Gérants de boutique de modifier les utilisateurs en gros dans WooCommerce ?
Ajoutez l'extrait PHP fourni au fichier functions.php de votre thème enfant ou à un plugin personnalisé. Cela rétablit l'accès à la modification qui était restreint depuis WooCommerce 3.4.6, permettant aux Gérants de boutique d'ouvrir et de gérer directement les profils des utilisateurs en gros.

Est-ce que ce correctif fonctionne également avec WooCommerce Wholesale Prices Premium ?
Oui. Le code prend en charge les versions gratuites et premium de WooCommerce Wholesale Prices, ainsi que les anciennes versions de Wholesale Suite. Il inclut une fonction de compatibilité ascendante pour gérer automatiquement les configurations héritées.

Quels rôles de vente en gros les Gérants de boutique peuvent-ils accéder avec ce code ?
Par défaut, le filtre s'applique aux rôles suivants :

  • client_grossiste
  • wholesale_gold

Vous pouvez étendre l'accès en ajoutant d'autres slugs de rôles au tableau $wholesale_roles dans le fichier, sans outils supplémentaires nécessaires.

Les Gérants de boutique peuvent-ils également créer de nouveaux comptes en gros en utilisant ceci ?
Oui. L'extrait accorde les capacités suivantes :

  • lister_utilisateurs
  • créer_utilisateurs
  • ajouter_utilisateurs
  • promouvoir_utilisateurs
  • modifier_utilisateurs

Cela permet aux Gérants de boutique d'enregistrer de nouveaux comptes et de gérer les comptes existants sans avoir besoin de privilèges d'administrateur complets.

Pourquoi mon Gérant de boutique ne peut-il toujours pas voir les profils en gros après avoir appliqué le correctif ?
Si le problème persiste :

  • Assurez-vous que l'extrait PHP est ajouté au fichier functions.php d'un thème enfant actif ou à un plugin dédié.
  • Confirmez que WooCommerce Wholesale Prices est installé et activé, car la solution dépend de sa configuration.

Besoin d'aide ?

Si vous avez une question ou rencontrez des problèmes, nous sommes là pour vous aider.

Cet article vous a-t-il été utile ?

Articles liés

Finalisez votre achat