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

根据用户登录状态显示/隐藏WooCommerce产品标签问题求助

解决方案

一、原需求正确实现代码

你的代码问题主要有两点:

  1. 第二个函数逻辑完全颠倒(应在登录时隐藏C、D标签,而非未登录状态)
  2. 两个过滤器优先级冲突,合并代码时存在语法错误(else未正确包裹代码块)

将以下代码替换子主题functions.php中的相关代码即可:

add_filter( 'woocommerce_product_tabs', 'customize_product_tabs', 100 );
function customize_product_tabs( $tabs ) {
    // 未登录用户:隐藏A、B标签,保留C、D
    if ( ! is_user_logged_in() ) {
        unset( $tabs['description'] );       // A标签的slug
        unset( $tabs['suggested-retail'] );   // B标签的slug
    } 
    // 登录用户:隐藏C、D标签,保留A、B
    else {
        unset( $tabs['description-log-in'] );    // C标签的slug
        unset( $tabs['suggested-retail-log-in'] );// D标签的slug
    }
    return $tabs;
}

代码说明:

  • 确保每个标签的slug与你实际设置的一致(比如description、suggested-retail对应A、B标签,description-log-in、suggested-retail-log-in对应C、D标签)
  • 统一用is_user_logged_in()判断登录状态,比直接调用$current_user更安全可靠
  • 单个过滤器函数避免了优先级冲突问题

二、替代需求实现方案(保留A、B标签,未登录隐藏面板内容)

如果原方案遇到问题,可采用此方案:仅保留A、B标签,登录用户查看完整内容,未登录用户看到标签但无法查看面板内的文本。

方法1:通过过滤标签内容实现

add_filter( 'woocommerce_product_tab_content', 'restrict_tab_content_to_logged_in', 10, 3 );
function restrict_tab_content_to_logged_in( $content, $slug, $tab ) {
    // 针对A、B标签(替换为你的标签slug)
    if ( in_array( $slug, array( 'description', 'suggested-retail' ) ) && ! is_user_logged_in() ) {
        // 替换为未登录时显示的提示内容
        $content = '<p>请<a href="' . get_permalink( get_option('woocommerce_myaccount_page_id') ) . '">登录</a>查看详细内容</p>';
    }
    return $content;
}

方法2:通过CSS隐藏内容(简单快速)

如果不需要动态提示语,可直接用CSS隐藏未登录用户的标签面板内容:

/* 未登录用户隐藏A、B标签的内容 */
body:not(.logged-in) .woocommerce-tabs #tab-description,
body:not(.logged-in) .woocommerce-tabs #tab-suggested-retail {
    display: none;
}
/* 可选:添加登录提示 */
body:not(.logged-in) .woocommerce-tabs #tab-description::before,
body:not(.logged-in) .woocommerce-tabs #tab-suggested-retail::before {
    content: "请登录查看详细内容";
    display: block;
    padding: 1em;
    color: #666;
}

将上述CSS添加到子主题的自定义CSS面板或style.css文件中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:44:55