Cómo eliminar algunos permisos del rol "manager" en WooCommerce

5 may 2015, 10:05:38
Vistas: 17K
Votos: 1

Estoy usando el plugin WooCommerce para gestionar una tienda. Necesito agregar un usuario que pueda administrar productos (agregar nuevos, editar). Así que añadí un usuario y le asigné el rol de shop manager, pero los permisos otorgados para este rol son muchos más de los que quería (por ejemplo, listar otros usuarios, acceder a pedidos, poder cambiar la configuración de la tienda, etc.).

Y no puedo entender cómo WordPress está gestionando los roles y permisos y en qué archivo PHP WooCommerce está definiendo este rol para poder editarlo.

2
Comentarios

Esto está rozando el límite de "Fuera de tema" ya que trata sobre complementos de terceros (WooCommerce), pero el núcleo de tu pregunta trata sobre permisos de usuario. Sugiero que edites tu pregunta para formularla de manera más específica como "¿Cómo cambio los permisos de un rol específico?" para que la pregunta no sea cerrada. Otra buena opción es buscar en este sitio sobre cómo gestionar permisos de usuario.

Howdy_McGee Howdy_McGee
5 may 2015 22:42:53

@Howdy_McGee Entiendo lo que quieres decir sobre que está fuera de tema, pero encontré una etiqueta para WooCommerce y pensé que las preguntas relacionadas sí eran apropiadas,

azerafati azerafati
6 may 2015 23:30:03
Todas las respuestas a la pregunta 2
0

Esto está muy cerca de estar fuera de tema ya que pregunta específicamente sobre un plugin en particular, pero la respuesta es bastante genérica:

Puedes eliminar las capacidades que no necesites.

function remove_cap_wpse_186316(){   
  remove_cap( 'yourwoorole', 'yourwoocap' );
  remove_cap( 'yourwoorole', 'yourwoocap1' );
}
add_action( 'admin_init', 'remove_cap_wpse_186316' );

El código anterior es solo para demostración/experimentación. Ten en cuenta la nota en el codex sobre que esto solo debe ejecutarse una vez:

Nota: Esta configuración se guarda en la base de datos (en la tabla wp_options, campo 'wp_user_roles'), por lo que solo deberías ejecutar esto una vez, durante la activación o desactivación del tema/plugin.

Puedes usar get_role() y volcar la salida para ver con qué capacidades estás tratando:

var_dump(get_role( 'yourwoorole' ));
6 may 2015 03:05:52
1

Por favor, agrega el siguiente código al archivo functions.php de tu tema de WordPress. Cambia los valores de true a false para los permisos que no necesites proporcionar al rol de shopmanager.

add_role('shop_manager', __('Shop Manager', 'woocommerce'), array(
    
    'read' => true,
    
    'read_private_pages'    => true,
    
    'read_private_posts'    => true,
    
    'edit_posts' => true,
    
    'edit_pages' => true,
    
    'edit_published_posts'  => true,
    
    'edit_published_pages'  => true,
    
    'edit_private_pages'    => true,
    
    'edit_private_posts'    => true,
    
    'edit_others_posts' => true,
    
    'edit_others_pages' => true,
    
    'publish_posts' => true,
    
    'publish_pages' => true,
    
    'delete_posts' => true,
    
    'delete_pages' => true,
    
    'delete_private_pages'  => true,
    
    'delete_private_posts'  => true,
    
    'delete_published_pages'    => true,
    
    'delete_published_posts'    => true,
    
    'delete_others_posts' => true,
    
    'delete_others_pages' => true,
    
    'manage_categories' => true,
    
    'manage_links'  => true,
    
    'moderate_comments' => true,
    
    'unfiltered_html'   => true,
    
    'upload_files'  => true,
    
    'export'    => true,
    
    'import'    => true,
    
    'manage_woocommerce'    => true,
    
    'manage_woocommerce_orders' => true,
    
    'manage_woocommerce_coupons'    => true,
    
    'manage_woocommerce_products'   => true,
    
    'view_woocommerce_reports'  => true
    
    ));
8 may 2017 09:27:50
Comentarios

por favor no uses comillas rizadas en el código

111 111
17 jul 2021 01:11:09