请求修改WooCommerce代码:在购物车显示配送类别及对应价格
修改WooCommerce购物车商品名称下方的配送信息,添加配送价格
以下是修改后的代码,会在配送类别名称前显示对应的配送价格:
add_filter( 'woocommerce_cart_item_name', 'shipping_class_with_price_in_item_name', 10, 3); function shipping_class_with_price_in_item_name( $item_name, $cart_item, $cart_item_key ) { $product = $cart_item['data']; $shipping_class_id = $product->get_shipping_class_id(); if( empty( $shipping_class_id ) ) return $item_name; $shipping_class_term = get_term( $shipping_class_id, 'product_shipping_class' ); $shipping_class_slug = $shipping_class_term->slug; $shipping_price = ''; // 获取启用的配送方法,查找对应配送类别的价格 $shipping_methods = WC_Shipping::instance()->get_shipping_methods(); foreach( $shipping_methods as $method ) { if( $method->enabled === 'yes' && method_exists( $method, 'get_shipping_class_cost' ) ) { // 获取该配送方法下对应配送类别的费用 $class_cost = $method->get_shipping_class_cost( $shipping_class_slug, $cart_item ); if( $class_cost > 0 ) { $shipping_price = wc_price( $class_cost ); break; // 找到第一个匹配的启用方法的价格后停止遍历 } } } $label = __( 'Shipping', 'woocommerce' ); $shipping_info = $shipping_price ? "{$shipping_price} - {$shipping_class_term->name}" : $shipping_class_term->name; return $item_name . '<br> <p class="item-shipping_class"> <strong>' . $label . ': </strong>' . $shipping_info . '</p>'; }
代码说明:
- 新增遍历启用配送方法的逻辑,提取对应配送类别的设置费用
- 用
wc_price()格式化价格,确保显示正确的货币符号与格式 - 若未找到对应配送类别的价格,会自动 fallback 到仅显示配送类别名称,兼容原有逻辑
- 保留原HTML结构与样式类,不影响现有页面布局
内容的提问来源于stack exchange,提问作者Faizii Khan
相关产品推荐
相关产品推荐

