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

如何在WooCommerce可变产品标签旁显示选中的属性选项名称?

解决WooCommerce属性标签旁仅显示选中属性值的问题

你当前使用get_the_terms()获取的是该产品关联的所有属性术语(比如可变产品的父产品会包含该属性的全部可选值),因此会输出所有选项而非选中的单个/多个值。

修改后的代码

<th class="label">
    <label for="<?php echo esc_attr( sanitize_title( $attribute_name ) ); ?>"><?php echo wc_attribute_label( $attribute_name ); // WPCS: XSS ok. ?></label> 
    <?php 
    global $product;
    // 获取当前产品选中的pa_spieki属性值
    $selected_spieki = $product->get_attribute('pa_spieki');
    
    // 仅当有选中值时输出
    if ( ! empty( $selected_spieki ) ) {
        echo ' ' . esc_html( $selected_spieki );
    }
    ?>
</th>

代码说明

  1. 获取产品对象:通过global $product;确保能访问当前WooCommerce产品实例;若代码不在产品循环/模板中,可改用$product = wc_get_product(get_the_ID());获取。
  2. 获取选中属性值:使用WooCommerce内置的get_attribute()方法,传入属性slug(此处为pa_spieki),该方法会自动适配产品类型返回对应值:
    • 简单产品:已分配的属性值
    • 可变产品:当前选中变体的属性值
    • 多选属性:逗号分隔的选中值列表
  3. 安全输出:用esc_html()转义输出内容,规避XSS安全风险。
  4. 空值判断:添加! empty()逻辑,避免属性未选中时输出空白内容。

若场景为购物车/订单页面,需获取购物车项目的属性值,可替换为以下代码:

// 假设$item为购物车项目对象
$selected_spieki = $item->get_meta('pa_spieki');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:25:07