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

如何在Woocommerce商品页面仅显示启用的配送方式?

解决WooCommerce商品页仅显示已启用配送方式的问题

你的代码目前会加载所有配送方式,核心原因是没有判断配送方式的启用状态。WooCommerce的配送方式对象自带is_enabled()方法,用来检查该方式是否已启用,只需在循环中添加这个判断即可实现需求。

修改后的完整代码如下:

add_action( 'woocommerce_product_meta_end', 'shipping_rates_single_product' );
function shipping_rates_single_product() {
    global $product;
    if ( ! $product->needs_shipping() ) return;
    
    $zones = WC_Shipping_Zones::get_zones();
    echo '<div><span class="qodef-woo-meta-label"> ' . __( 'Envíos', 'woocommerce' );
    echo '</span><ul>';
    
    foreach ( $zones as $zone_id => $zone ) {
        $zone_shipping_methods = $zone['shipping_methods'];
        foreach ( $zone_shipping_methods as $index => $method ) {
            // 新增判断:仅处理已启用的配送方式
            if ( $method->is_enabled() ) {
                $instance = $method->instance_settings;
                $cost = $instance['cost'] ? $instance['cost'] : $instance['min_amount'];
                echo '<li><span class="qodef-woo-meta-value">' . $instance['title'] . '<br>';
                echo $instance['description'] . '</span></li>';
            }
        }
    }
    
    echo '</ul></div>';
}

关键修改说明:

  • 在遍历单个配送方式的循环内,添加了if ( $method->is_enabled() )条件判断,只有当该配送方式处于后台启用状态时,才会执行后续的输出逻辑。

修改后,商品页面就只会显示你在WooCommerce后台启用的配送方式了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:42:03