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

根据用户角色修改WooCommerce我的账户标签名称

根据用户角色修改WooCommerce账户标签单复数

可以通过WooCommerce的woocommerce_account_menu_items钩子实现需求,核心逻辑是获取当前用户角色,根据角色权限替换对应账户标签的单复数文本。

示例代码

add_filter('woocommerce_account_menu_items', 'custom_account_label_by_user_role');
function custom_account_label_by_user_role($items) {
    // 未登录用户直接返回原菜单
    if (!is_user_logged_in()) {
        return $items;
    }

    $current_user = wp_get_current_user();
    $user_roles = $current_user->roles;

    // 替换成你实际的角色slug
    $single_product_roles = ['single_product_user'];
    $multiple_product_roles = ['wholesale_member', 'vip_customer'];

    // 替换成你要修改的账户菜单key(比如自定义的"我的产品"菜单key)
    $target_menu_key = 'my-products';

    // 根据角色切换单复数标签
    if (array_intersect($user_roles, $single_product_roles)) {
        $items[$target_menu_key] = '我的专属产品'; // 单数形式
    } elseif (array_intersect($user_roles, $multiple_product_roles)) {
        $items[$target_menu_key] = '我的产品库'; // 复数形式
    }

    return $items;
}

代码说明

  • woocommerce_account_menu_items钩子用于过滤账户页面的菜单项数组,数组key是菜单标识,value是显示的标签文本。
  • wp_get_current_user()获取当前登录用户对象,通过roles属性拿到用户所有角色。
  • array_intersect()用于判断用户角色是否属于目标组,兼容用户拥有多个角色的场景。
  • 需根据实际情况调整:
    • $single_product_roles和$multiple_product_roles中的角色slug(比如默认角色是customer,自定义角色需用对应slug)。
    • $target_menu_key要匹配你实际修改的账户菜单key(比如默认"订单"的key是orders)。
    • 单复数标签文本可自定义,比如单数用"我的专属产品",复数用"我的产品列表"。

注意事项

  • 代码可添加到主题functions.php文件,或用自定义代码插件(如Code Snippets)添加,避免主题更新丢失代码。
  • 若用户同时属于多个角色组,代码会优先匹配single_product_roles,可根据需求调整判断顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:01:21