如何移除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
相关产品推荐
相关产品推荐

