给WooCommerce购物车商品添加分类类名后更新按钮失效求助
解决WooCommerce添加商品分类类名导致购物车更新按钮失效的问题
问题原因
原代码直接替换了购物车项的默认类名,丢失了WooCommerce处理购物车更新功能依赖的核心类(比如cart_item),导致前端JS无法正确识别购物车元素,最终让“更新购物车”按钮失效。
修复后的代码
function filter_woocommerce_cart_item_class( $string, $cart_item, $cart_item_key ) { // 获取当前商品的分类别名 $term_slugs = wp_get_post_terms( $cart_item['product_id'], 'product_cat', array( 'fields' => 'slugs' ) ); // 如果分类存在,追加到原有类名后 if ( ! empty( $term_slugs ) ) { $string .= ' ' . implode( ' ', $term_slugs ); } return $string; } add_filter( 'woocommerce_cart_item_class', 'filter_woocommerce_cart_item_class', 10, 3 );
修复说明
把原代码中直接替换类名的$string = implode(...)改成$string .= ' ' . implode(...),这样是在WooCommerce默认的购物车项类名基础上追加商品分类的slug,既实现了给购物车项添加分类类名的需求,又完整保留了原有功能依赖的类名,不会影响购物车更新按钮的正常工作。
内容的提问来源于stack exchange,提问作者WWD
相关产品推荐
相关产品推荐

