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

如何在Woocommerce购物车页面将产品属性术语添加为body类

WooCommerce 5.8版本下将产品属性术语添加为购物车页面body类的解决方案

你参考的旧方案大多只适配了商品详情页场景,没有处理购物车多商品遍历逻辑,以下是适配WooCommerce 5.8的可用实现:

实现步骤

  1. 复制以下代码到你当前使用主题的functions.php文件中,或者使用自定义代码片段插件插入:
add_filter( 'body_class', 'add_cart_product_attributes_to_body_class', 999 );
function add_cart_product_attributes_to_body_class( $classes ) {
    // 仅在购物车页面触发逻辑
    if ( ! is_cart() ) return $classes;
    
    $cart_items = WC()->cart->get_cart();
    $target_attribute = 'pa_your_custom_attribute'; // 替换为你实际的属性别名,前缀为pa_

    foreach ( $cart_items as $item ) {
        $product = $item['data'];
        $term_values = $product->get_attribute( $target_attribute );
        if ( $term_values ) {
            $terms = explode( ', ', $term_values );
            foreach ( $terms as $term ) {
                $class_slug = sanitize_title( $term );
                if ( ! in_array( $class_slug, $classes ) ) {
                    $classes[] = $class_slug;
                }
            }
        }
    }
    return $classes;
}
  1. 替换代码中的pa_your_custom_attribute为你需要提取的产品属性别名,比如需要调用颜色属性就替换为pa_color。

注意事项

  • 如果需要添加多个属性的术语到body类,可复制属性提取的逻辑段,修改目标属性别名即可
  • 代码添加完成后需要清空购物车缓存,或者重新添加商品到购物车后再测试效果
  • 如果需要针对变体属性生效,可把$product = $item['data']后的逻辑做对应调整,获取变体属性值即可

内容的提问来源于stack exchange,提问作者stevesu-8bm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:18:01