You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Shop Manager权限:禁止访问WooCommerce设置且仅可查看商品

解决Shop Manager权限定制问题

你不需要用manage_woocommerce这个大权限,它会直接解锁所有WooCommerce管理功能,包括设置和商品编辑。正确的做法是拆分细粒度权限:保留订单、报表的访问/管理权限,只给商品查看权限,同时移除所有商品编辑和WooCommerce设置相关的权限。

以下是完整的代码实现:

function we_update_shopmanager() {
    // 获取Shop Manager角色对象
    $shop_manager = get_role( 'shop_manager' );
    if ( ! $shop_manager ) return;

    // --------------------------
    // 1. 移除不需要的权限
    // --------------------------
    $remove_caps = array(
        // 移除商品编辑/删除/发布权限
        'edit_products',
        'edit_others_products',
        'publish_products',
        'delete_products',
        'delete_others_products',
        'edit_private_products',
        'delete_private_products',
        'edit_published_products',
        'delete_published_products',
        // 移除WooCommerce设置权限
        'manage_woocommerce',
        // 移除其他不需要的默认权限(可选)
        'delete_pages',
        'edit_pages'
    );

    foreach ( $remove_caps as $cap ) {
        $shop_manager->remove_cap( $cap );
    }

    // --------------------------
    // 2. 添加需要的权限
    // --------------------------
    $add_caps = array(
        // 商品查看权限(仅允许查看)
        'read_products',
        'read_private_products',
        // 订单管理权限(查看、编辑、处理订单)
        'edit_shop_orders',
        'edit_others_shop_orders',
        'read_shop_orders',
        'read_private_shop_orders',
        'delete_shop_orders',
        'delete_others_shop_orders',
        'edit_published_shop_orders',
        'delete_published_shop_orders',
        // 报表查看权限
        'view_woocommerce_reports',
        'view_woocommerce_sales_reports',
        'view_woocommerce_product_reports',
        'view_woocommerce_customer_reports',
        // 订单统计查看权限
        'view_woocommerce_order_stats'
    );

    foreach ( $add_caps as $cap ) {
        $shop_manager->add_cap( $cap );
    }
}

// 在WooCommerce初始化角色之后执行(优先级11)
add_action( 'init', 'we_update_shopmanager', 11 );

关键说明:

  • 商品权限:只保留read_products和read_private_products,确保Shop Manager只能查看商品,无法编辑、新增或删除。
  • 订单权限:添加全套订单管理权限,允许处理订单(编辑状态、标记完成、删除等操作)。
  • 报表权限:添加各类报表查看权限,确保能正常访问WooCommerce的报表板块。
  • 避开manage_woocommerce:完全不添加这个权限,就能直接阻止Shop Manager进入WooCommerce设置页面。

代码生效后,记得用Shop Manager账号登录测试:确认能访问订单、报表,无法进入WooCommerce设置,且只能查看不能编辑商品。

内容的提问来源于stack exchange,提问作者user2679476

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:16:01