So entfernen Sie den Versandabschnitt von der Woocommerce-Warenkorbseite

Lesezeit: 6 Minuten

Benutzer-Avatar
Viona Schönheit

Ich habe versucht, das zu entfernen, indem ich den folgenden Code zu meinem Thema functions.php hinzufügte, aber es funktioniert nicht.

    function remove_shipping_calc_on_cart( $show_shipping ) {
    if( is_cart() ) {
        return false;
    }
    return $show_shipping;
}
add_filter( 'woocommerce_cart_ready_to_calc_shipping', 'remove_shipping_calc_on_cart', 99 );

dann habe ich versucht, die Datei cart-totals.php zu bearbeiten, aber ich kann es nicht. könntest du mir dabei helfen?

cart-totals.php Dateikonflikte unter dem Code:

/**
 * 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 if ( WC()->customer->has_calculated_shipping() ) echo 'calculated_shipping'; ?>">

    <div class="content-block-title"><?php _e( 'Cart totals', 'woocommerce' ); ?></div>

    <div class="content-block bg-white block-shadow">
        <div class="content-block-inner pb-0">

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

            <table cellspacing="0" class="list-table">

                <tr class="cart-subtotal">
                    <th><?php _e( 'Subtotal', 'woocommerce' ); ?></th>
                    <td data-title="<?php esc_attr_e( 'Subtotal', 'woocommerce' ); ?>"><?php wc_cart_totals_subtotal_html(); ?></td>
                </tr>

                <?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; ?>

                <?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 foreach ( WC()->cart->get_fees() as $fee ) : ?>
                    <tr class="fee">
                        <th><?php echo esc_html( $fee->name ); ?></th>
                        <td data-title="<?php echo esc_attr( $fee->name ); ?>"><?php wc_cart_totals_fee_html( $fee ); ?></td>
                    </tr>
                <?php endforeach; ?>

                <?php if ( wc_tax_enabled() && 'excl' === WC()->cart->tax_display_cart ) :
                    $taxable_address = WC()->customer->get_taxable_address();
                    $estimated_text  = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping()
                            ? sprintf( ' <small>' . __( '(estimated for %s)', 'woocommerce' ) . '</small>', WC()->countries->estimated_for_prefix( $taxable_address[0] ) . WC()->countries->countries[ $taxable_address[0] ] )
                            : '';

                    if ( 'itemized' === get_option( 'woocommerce_tax_total_display' ) ) : ?>
                        <?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : ?>
                            <tr class="tax-rate tax-rate-<?php echo sanitize_title( $code ); ?>">
                                <th><?php echo esc_html( $tax->label ) . $estimated_text; ?></th>
                                <td data-title="<?php echo esc_attr( $tax->label ); ?>"><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else : ?>
                        <tr class="tax-total">
                            <th><?php echo esc_html( WC()->countries->tax_or_vat() ) . $estimated_text; ?></th>
                            <td data-title="<?php echo esc_attr( WC()->countries->tax_or_vat() ); ?>"><?php wc_cart_totals_taxes_total_html(); ?></td>
                        </tr>
                    <?php endif; ?>
                <?php endif; ?>

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

                <tr class="order-total">
                    <th><?php _e( 'Total', 'woocommerce' ); ?></th>
                    <td style="font-size: 18px;text-align: center;color: #4eb051;" data-title="<?php esc_attr_e( 'Total', 'woocommerce' ); ?>"><?php wc_cart_totals_order_total_html(); ?></td>
                </tr>

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

            </table>

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

        </div>
    </div>

</div>

Wie kann ich diese Codes bearbeiten, um den Versand aus dem Woocommerce-Warenkorb zu entfernen?

Wenn Sie den Versandabschnitt auf der Warenkorbseite für alle vollständig ausblenden möchten, sollten Sie Folgendes hinzufügen (und Sie müssen keine Vorlagendatei überschreiben):

add_filter( 'woocommerce_cart_needs_shipping', 'filter_cart_needs_shipping' );
function filter_cart_needs_shipping( $needs_shipping ) {
    if ( is_cart() ) {
        $needs_shipping = false;
    }
    return $needs_shipping;
}

Der Code wird in die Datei functions.php Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert.

  • Ich weiß, dass das Überschreiben der Vorlagendatei kein guter Weg ist, aber das Einfügen von Code in meine Datei functions.php funktioniert nicht. Ich habe es immer wieder versucht, aber es hat bei mir nicht funktioniert.

    – Viona Schönheit

    19. März 2020 um 17:10 Uhr


  • @VionaBeauty Auf meinem Testserver funktioniert es perfekt: Möglicherweise müssen Sie alle vorherigen Anpassungen entfernen, die an den Warenkorbvorlagen vorgenommen wurden. Wenn es für Sie nicht funktioniert, warum akzeptieren Sie die Antwort?

    – LoicTheAztec

    19. März 2020 um 18:16 Uhr


  • @LoicTheAztec Du bist eine Quelle der Weisheit in Bezug auf Woocommerce. Vielen Dank für die Bemühungen auf dieser Seite.

    – Armadadrive

    21. Mai 2021 um 17:48 Uhr

  • @LoicTheAztec – Dies funktioniert perfekt, um die Versandberechnung zu deaktivieren. Ich musste die Berechnung im Warenkorb deaktivieren – da ich 50-100 Produkte auf einmal in den Warenkorb lege und der Versand für jedes einzelne berechnet wird, was ihn verlangsamt. Es mit CSS zu verstecken oder es auszuschalten funktioniert einfach nicht. Mit Ihrem Code deaktiviert es die Berechnung vollständig bis zur Checkout-Seite.

    – Philipp Deatherage

    15. August 2021 um 19:19 Uhr

Um den Abschnitt Versand/Lieferung in Ihrem Woocommerce-Warenkorb auszublenden, können Sie dies einfach per CSS tun.

.woocommerce-shipping-totals.shipping {
    display: none;
}

  • Ich dachte auch, das würde funktionieren, aber es verbirgt auch die Versandoptionen im Checkout.

    – Thomas Loksa

    10. April 2021 um 7:55 Uhr

1382590cookie-checkSo entfernen Sie den Versandabschnitt von der Woocommerce-Warenkorbseite

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy