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

如何获取无shipping class的WooCommerce产品并设置对应运费

修复WooCommerce产品页面运费显示问题

你的代码问题出在无shipping class的判断逻辑被嵌套在了!empty($shipping_class)的条件块里,导致没有设置shipping class的产品根本不会执行到这段判断。下面是修改后的代码:

add_action('woocommerce_single_product_summary', 'display_product_shipping_class', 15 );
function display_product_shipping_class(){
    global $product;
    
    $shipping_class = $product->get_shipping_class();
    
    // 处理有shipping class的产品
    if( ! empty($shipping_class) ) {
        $term = get_term_by( 'slug', $shipping_class, 'product_shipping_class' );
    
        if( is_a($term, 'WP_Term') ){
            echo '<p class="product-shipping-class">' . $term->name . '</p>';
            
            if( $shipping_class == 'pavolum'){ 
                echo '<p class="tarif">Livraison à Tarif=10dt</p>';
            } elseif( $shipping_class == 'pvolum'){ 
                echo '<p class="tarif">Livraison à Tarif=15dt</p>';
            }
        }
    } 
    // 处理无shipping class的产品
    else {
        echo '<p class="tarif">Livraison à Tarif=7dt</p>';
    }
}

关键改动说明:

  • 移除了外层包裹整个逻辑的if( ! empty($shipping_class) ),改为分别判断有/无shipping class的情况
  • 用else直接处理无shipping class的场景,逻辑更清晰
  • 将多个独立if改为elseif,减少不必要的判断执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:32:29