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

如何移除WooCommerce购物车页面的配送区域?

解决WooCommerce购物车页面移除配送区域的问题

首先,你之前在functions.php中添加的代码没生效,大概率是因为主题或其他插件的钩子优先级更高,覆盖了你的设置。不过直接修改cart-totals.php模板文件是更直接的解决方案,我来给你具体的修改步骤:

第一步:备份并复制模板文件

先把WooCommerce核心的cart-totals.php文件复制到你的主题目录下的woocommerce/cart/文件夹里(如果没有这个路径就手动创建),这样WooCommerce更新时不会覆盖你的修改。

第二步:修改模板代码

打开你复制到主题目录的cart-totals.php文件,找到以下这段负责显示配送区域的代码块:

<?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>
    <?php do_action( 'woocommerce_cart_totals_before_shipping' ); ?>
    <?php wc_cart_totals_shipping_html(); ?>
    <?php do_action( 'woocommerce_cart_totals_after_shipping' ); ?>
<?php elseif ( WC()->cart->needs_shipping() && 'yes' === get_option( 'woocommerce_enable_shipping_calc' ) ) : ?>
    <tr class="shipping">
        <th>حمل و نقل</th>
        <td data-title="حمل و نقل"><?php woocommerce_shipping_calculator(); ?></td>
    </tr>
<?php endif; ?>

把**整个这段代码(从<?php if到<?php endif; ?>)**删除即可。如果担心后续需要恢复,也可以用PHP注释包裹起来:

<?php /*
if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) :
    do_action( 'woocommerce_cart_totals_before_shipping' );
    wc_cart_totals_shipping_html();
    do_action( 'woocommerce_cart_totals_after_shipping' );
elseif ( WC()->cart->needs_shipping() && 'yes' === get_option( 'woocommerce_enable_shipping_calc' ) ) : ?>
    <tr class="shipping">
        <th>حمل و نقل</th>
        <td data-title="حمل و نقل"><?php woocommerce_shipping_calculator(); ?></td>
    </tr>
<?php endif; */ ?>

验证效果

保存修改后,刷新购物车页面,你会发现配送相关的区域已经完全移除了。

另外,如果你还是想尝试用functions.php的方法,可以试试这个调整后的代码(直接覆盖配送区域的HTML输出):

add_filter( 'woocommerce_cart_totals_shipping_html', '__return_empty_string', 999 );

这个钩子返回空字符串,也能达到移除配送区域的效果,而且不用修改模板文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:52:41