1. Inicio
  2. Base de Conocimientos
  3. WooCommerce Wholesale Prices Premium
  4. Backend
  5. Cómo Permitir a los Gerentes de Tienda Editar Usuarios en WooCommerce

Cómo Permitir a los Gerentes de Tienda Editar Usuarios en WooCommerce

A partir de la versi ilde{}^{1}n WooCommerce 3.4.6, se introdujo una correcci ilde{}^{1}n de seguridad que restringe a los Gerentes de Tienda la edici ilde{}^{1}n de otros usuarios, excepto aquellos con el rol de Cliente.

Esto significa que, por defecto, los Gerentes de Tienda no pueden editar usuarios que tengan roles mayoristas creados por plugins como WooCommerce Wholesale Prices o Wholesale Prices Premium.

Si desea que sus Gerentes de Tienda puedan editar (y promocionar) usuarios con roles mayoristas, puede habilitar f ilde{}^{1}cilmente esta funcionalidad a ilde{}^{1}adiendo el siguiente c ilde{}^{1}digo a su sitio.

C ilde{}^{1}mo habilitar a los Gerentes de Tienda para editar usuarios mayoristas

A ilde{}^{1}ada el siguiente fragmento a su archivo functions.php del tema, a su tema hijo o a un plugin personalizado.

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


Qu ilde{}^{1} hace este fragmento

  • Restaura las capacidades de edici ilde{}^{1}n de usuarios para el rol de Gerente de Tienda, permiti ilde{}^{1}ndoles ver, editar y promocionar usuarios.
  • A ilde{}^{1}ade compatibilidad con roles mayoristas, como wholesale_customer o otros roles personalizados mayoristas.
  • Mantiene la compatibilidad con versiones anteriores de plugins como Wholesale Prices Premium que utilizan un filtro diferente.

Puede a ilde{}^{1}adir o eliminar roles mayoristas del array $wholesale_roles seg ilde{}^{1}n sea necesario para que coincida con la configuraci ilde{}^{1}n de su sitio.

Preguntas frecuentes

ilde{Aiquest;C ilde{}^{1}mo permito que los Gerentes de Tienda editen usuarios mayoristas en WooCommerce?
A ilde{}^{1}ada el fragmento PHP proporcionado al archivo functions.php de su tema hijo o a un plugin personalizado. Esto restaura el acceso de edici ilde{}^{1}n que se restringi ilde{}^{1} desde WooCommerce 3.4.6, permitiendo a los Gerentes de Tienda abrir y gestionar perfiles de usuarios mayoristas directamente.

ilde{Aiquest;Este arreglo funciona tambi ilde{}^{1}n con WooCommerce Wholesale Prices Premium?
S ilde{}^{1}. El c ilde{}^{1}digo es compatible tanto con la versi ilde{}^{1}n gratuita como con la premium de WooCommerce Wholesale Prices, as ilde{}^{1} como con versiones anteriores de Wholesale Suite. Incluye una funci ilde{}^{1}n compatible con versiones anteriores para manejar configuraciones heredadas autom ilde{}^{1}ticamente.

ilde{Aiquest;A qu ilde{}^{1} roles mayoristas pueden acceder los Gerentes de Tienda con este c ilde{}^{1}digo?
Por defecto, el filtro se aplica a los siguientes roles:

  • cliente mayorista
  • oro_mayorista

Puede ampliar el acceso a ilde{^{1}adiendo m ilde{^{1}}s nombres de roles al array $wholesale_roles en el archivo, sin necesidad de herramientas adicionales.

ilde{Aiquest;Los Gerentes de Tienda tambi ilde{}^{1}n pueden crear nuevas cuentas mayoristas con esto?
S ilde{1}. El fragmento otorga las siguientes capacidades:

  • listar usuarios
  • crear usuarios
  • añadir usuarios
  • promover usuarios
  • editar usuarios

Esto permite a los Gerentes de Tienda registrar nuevas cuentas y gestionar las existentes sin necesidad de privilegios de administrador completos.

ilde{Aiquest;Por qu ilde{}^{1} mi Gerente de Tienda a ilde{^{1}}n no puede ver los perfiles mayoristas despu ilde{^{1}}s de aplicar la correcci ilde{^{1}}n?
Si el problema persiste:

  • Aseg ilde{}^{1}rese de que el fragmento PHP se ha a ilde{^{1}}adido al archivo functions.php de un tema hijo activo o a un plugin dedicado.
  • Confirme que WooCommerce Wholesale Prices est ilde{^{1}} instalado y activado, ya que la soluci ilde{^{1}}n depende de su configuraci ilde{^{1}}n.

¿Necesitas ayuda?

Si tienes alguna pregunta o encuentras algún problema, estamos aquí para ayudarte.

¿Te ha resultado útil este artículo?

Artículos relacionados

Completa tu Compra