Hide shipping label woocommerce

I need to hide the shipping label on my woocommerce cart page but keep it visible on the checkout page.

I have read that I can use is_cart() to target the cart specifically but it has not worked with any code that I have written in functions.php.

Read More

Does anyone know how to accomplish this?

-edit-

I have found the following code to put in functions.php:

add_filter('woocommerce_cart_shipping_method_full_label', 'remove_shipping_label', 10, 2);

function remove_shipping_label($label, $method) {
    $new_label = preg_replace('/^.+:/', '', $label);
    return $new_label;
}

Now I need to combine the code with “if ( is_cart() )” to target the cart page specifically but I haven’t figured out how.

Related posts

Leave a Reply

4 comments

  1. The cart page is loaded by a template in the plugin folder:

    woocommerce/templates/cart/cart-shipping.php
    

    To overridethis template you need to copy that file in your theme at:

    /your_theme_folder/woocommerce/cart/cart-shipping.php
    

    Now you can do anything with it (leave it empty even) and it will only affect the cart page. The checkout page uses a different template file to generate the shipping fields.

    Source: experience + template overriding

  2. This is what I got to work, that is to edit woocommerce shipping details template. Old question I know, and my answer is not 100% related to the question, but searching did not help me too much with this problem,so I thought I’d help anyone still looking……

    In the line $pos=strpos($wherefrom,"checkout"); the checkout must be the name (slug) of your checkout page. The section that let’s you choose payment methods is loaded by ajax, so all the ‘is_page’, ‘is_checkout’, etc, return blanks, so I resorted to useing the http_referrer. This is the result of way too many hours on one ‘small’ problem. This code goes in the cart-shipping.php file as described in Yavour’s answer, and must replace the existing code between the existing <ul></ul>.

            <ul id="shipping_method">
                <?php 
                $wherefrom=wp_get_referer();
                $pos=strpos($wherefrom,"checkout");
                if ($pos!==false)
                {
                    echo "<li>";
                    foreach ( $available_methods as $method )
                    {
                        if ($method->id==$chosen_method)
                        {
                            $mymethod=wp_kses_post(wc_cart_totals_shipping_method_label( $method ));
                        }
                    }
                    echo $mymethod; 
                    echo "</li>";
                }
                else
                {
                ?>
                    <?php foreach ( $available_methods as $method ) : ?>
                    <li>
                        <input type="radio" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>" value="<?php echo esc_attr( $method->id ); ?>" <?php checked( $method->id, $chosen_method ); ?> class="shipping_method" />
                        <label for="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>"><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></label>
                    </li>
                    <?php endforeach; ?>
                <?php
                }
                ?>
    
            </ul>
    
  3. On Checkout page hide shipping label and display only shipping cost below below code.

    add_filter( 'woocommerce_cart_shipping_method_full_label', 'remove_shipping_label', 9999, 2 );
    
    function remove_shipping_label( $label, $method ) {
        $new_label = preg_replace( '/^.+:/', '', $label );
        return $new_label;
    }
    
  4. function disable_shipping_calc_on_cart( $show_shipping ) {
        if( is_cart() ) {
            return false;
        }
        return $show_shipping;
    }
    add_filter( 'woocommerce_cart_ready_to_calc_shipping','disable_shipping_calc_on_cart', 99 );