在购物车页面上启用运费计算器不起作用

我使用的是 WooCommerce 4.2.0,无法在购物车页面上显示运费。但是,在 Woocommerce > 设置 > 运费中选中了“在购物车页面上启用运费计算器”选项。

https://img1.sycdn.imooc.com/653397f70001d04d06520632.jpg

这是我的子主题(店面)cart-totals.php:


<?php

/**

 * Cart totals

 *

 * This template can be overridden by copying it to yourtheme/woocommerce/cart/cart-totals.php.

 *

 * HOWEVER, on occasion WooCommerce will need to update template files and you

 * (the theme developer) will need to copy the new files to your theme to

 * maintain compatibility. We try to do this as little as possible, but it does

 * happen. When this occurs the version of the template file will be bumped and

 * the readme will list any important changes.

 *

 * @see         https://docs.woocommerce.com/document/template-structure/

 * @author      WooThemes

 * @package     WooCommerce/Templates

 * @version     2.3.6

 */


if ( ! defined( 'ABSPATH' ) ) {

    exit;

}


?>

<div class="cart_totals <?php echo ( WC()->customer->has_calculated_shipping() ) ? 'calculated_shipping' : ''; ?>">


    <?php do_action( 'woocommerce_before_cart_totals' ); ?>


    <table cellspacing="0" class="shop_table shop_table_responsive">


        <?php foreach ( WC()->cart->get_coupons() as $code => $coupon ) : ?>

            <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">

                <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>

                <td data-title="<?php echo esc_attr( wc_cart_totals_coupon_label( $coupon, false ) ); ?>"><?php wc_cart_totals_coupon_html( $coupon ); ?></td>

            </tr>

        <?php endforeach; ?>



斯蒂芬大帝
浏览 70回答 1
1回答

胡子哥哥

正如评论中提到的,您的模板文件错过了运输部分。只需从原始cart-totals.php模板添加它,如下所示:<?php/**&nbsp;* Cart totals&nbsp;*&nbsp;* This template can be overridden by copying it to yourtheme/woocommerce/cart/cart-totals.php.&nbsp;*&nbsp;* HOWEVER, on occasion WooCommerce will need to update template files and you&nbsp;* (the theme developer) will need to copy the new files to your theme to&nbsp;* maintain compatibility. We try to do this as little as possible, but it does&nbsp;* happen. When this occurs the version of the template file will be bumped and&nbsp;* the readme will list any important changes.&nbsp;*&nbsp;* @see&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;https://docs.woocommerce.com/document/template-structure/&nbsp;* @author&nbsp; &nbsp; &nbsp; WooThemes&nbsp;* @package&nbsp; &nbsp; &nbsp;WooCommerce/Templates&nbsp;* @version&nbsp; &nbsp; &nbsp;2.3.6&nbsp;*/if ( ! defined( 'ABSPATH' ) ) {&nbsp; &nbsp; exit;}?><div class="cart_totals <?php echo ( WC()->customer->has_calculated_shipping() ) ? 'calculated_shipping' : ''; ?>">&nbsp; &nbsp; <?php do_action( 'woocommerce_before_cart_totals' ); ?>&nbsp; &nbsp; <table cellspacing="0" class="shop_table shop_table_responsive">&nbsp; &nbsp; &nbsp; &nbsp; <?php foreach ( WC()->cart->get_coupons() as $code => $coupon ) : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td data-title="<?php echo esc_attr( wc_cart_totals_coupon_label( $coupon, false ) ); ?>"><?php wc_cart_totals_coupon_html( $coupon ); ?></td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; <?php endforeach; ?>&nbsp; &nbsp; &nbsp; &nbsp; <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php do_action( 'woocommerce_cart_totals_before_shipping' ); ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php wc_cart_totals_shipping_html(); ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php do_action( 'woocommerce_cart_totals_after_shipping' ); ?>&nbsp; &nbsp; &nbsp; &nbsp; <?php elseif ( WC()->cart->needs_shipping() && 'yes' === get_option( 'woocommerce_enable_shipping_calc' ) ) : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr class="shipping">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th><?php esc_html_e( 'Shipping', 'woocommerce' ); ?></th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td data-title="<?php esc_attr_e( 'Shipping', 'woocommerce' ); ?>"><?php woocommerce_shipping_calculator(); ?></td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; <?php endif; ?>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <?php foreach ( WC()->cart->get_fees() as $fee ) : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr class="fee">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th><?php echo esc_html( $fee->name ); ?></th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td data-title="<?php echo esc_attr( $fee->name ); ?>"><?php wc_cart_totals_fee_html( $fee ); ?></td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; <?php endforeach; ?>&nbsp; &nbsp; &nbsp; &nbsp; <?php if ( wc_tax_enabled() && ! WC()->cart->display_prices_including_tax() ) :&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $taxable_address = WC()->customer->get_taxable_address();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $estimated_text&nbsp; = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? sprintf( ' <small>' . __( '(estimated for %s)', 'woocommerce' ) . '</small>', WC()->countries->estimated_for_prefix( $taxable_address[0] ) . WC()->countries->countries[ $taxable_address[0] ] )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : '';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( 'itemized' === get_option( 'woocommerce_tax_total_display' ) ) : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr class="tax-rate tax-rate-<?php echo sanitize_title( $code ); ?>">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th><?php echo esc_html( $tax->label ) . $estimated_text; ?></th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td data-title="<?php echo esc_attr( $tax->label ); ?>"><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php endforeach; ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php else : ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr class="tax-total">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th><?php echo esc_html( WC()->countries->tax_or_vat() ) . $estimated_text; ?></th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td data-title="<?php echo esc_attr( WC()->countries->tax_or_vat() ); ?>"><?php wc_cart_totals_taxes_total_html(); ?></td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php endif; ?>&nbsp; &nbsp; &nbsp; &nbsp; <?php endif; ?>&nbsp; &nbsp; &nbsp; &nbsp; <?php do_action( 'woocommerce_cart_totals_before_order_total' ); ?>&nbsp; &nbsp; &nbsp; &nbsp; <tr class="order-total">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th><?php _e( 'Total', 'woocommerce' ); ?></th>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td data-title="<?php esc_attr_e( 'Total', 'woocommerce' ); ?>"><?php wc_cart_totals_order_total_html(); ?></td>&nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; <?php do_action( 'woocommerce_cart_totals_after_order_total' ); ?>&nbsp; &nbsp; </table>&nbsp; &nbsp; <?php do_action( 'woocommerce_after_cart_totals' ); ?></div><div class="wc-proceed-to-checkout">&nbsp; &nbsp; <?php do_action( 'woocommerce_proceed_to_checkout' ); ?></div>
打开App,查看更多内容
随时随地看视频慕课网APP