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

WooCommerce:特定用户角色的账户仪表板文本显示异常排查

问题解决:WooCommerce仪表板按用户角色显示文本

你的代码问题出在条件判断逻辑错误,还有依赖用户角色数组的第一个元素不可靠:

  • 原代码里$role[0]=="Corporate"||"Partner"的写法不对,"Partner"本身是真值,不管前面的条件是否成立,整个判断都会为真,所以所有登录用户都能看到文本。
  • 用户可能拥有多个角色,$role[0]不一定是你要判断的那个角色,直接取第一个元素会导致判断失效。

下面是两种正确的写法:

写法1:检查用户角色数组(直接修改模板)

替换你原有的PHP代码:

<p>
    <?php
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
        // 检查用户角色数组中是否包含目标角色
        if ( in_array( 'Corporate', $user->roles ) || in_array( 'Partner', $user->roles ) ) {
            printf('Bulk rate discount is available at listed rates: ');
        }
    }
    ?>
</p>

写法2:用WordPress官方函数更可靠(推荐)

WordPress的user_can函数可以直接检查用户是否拥有某个角色(或权限),比直接遍历角色数组更稳妥:

<p>
    <?php
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
        if ( user_can( $user, 'Corporate' ) || user_can( $user, 'Partner' ) ) {
            printf('Bulk rate discount is available at listed rates: ');
        }
    }
    ?>
</p>

额外提醒

不要直接修改WooCommerce的核心模板文件,下次插件更新时你的修改会被覆盖。建议用子主题复制woocommerce/templates/myaccount/dashboard.php到子主题的对应目录再修改,或者使用woocommerce_account_dashboard钩子添加内容,这样更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:55:16