隐藏运输标签wooccommerce



我需要在我的wooccommerce购物车页面上隐藏发货标签,但在结账页面上保持可见。

我读到我可以使用is_cart()专门针对购物车,但它不适用于我在functions.hp.中编写的任何代码

有人知道如何做到这一点吗?

-编辑-

我找到了以下代码来放入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;
}

现在我需要将代码与"if(is_cart())"结合起来,专门针对购物车页面,但我还没有弄清楚如何。

购物车页面由插件文件夹中的模板加载:

woocommerce/templates/cart/cart-shipping.php

要覆盖此模板,您需要将该文件复制到您的主题中:

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

现在你可以用它做任何事情(甚至留空),它只会影响购物车页面。签出页面使用不同的模板文件来生成装运字段。

来源:经验+覆盖的模板

这就是我要做的工作,即编辑wooccommerce发货详细信息模板。我知道一个老问题,我的答案与这个问题不是100%相关,但搜索对我解决这个问题没有太大帮助,所以我想我会帮助任何仍在寻找的人。。。。。。

$pos=strpos($wherefrom,"checkout");行中,checkout必须是签出页面的名称(段塞)。让我们选择支付方式的部分是由ajax加载的,所以所有的"is_page"、"is_checkout"等都返回空白,所以我使用了http_referrer。这是因为在一个"小"问题上花了太多时间。如Yavour的回答中所述,此代码位于cart-shipping.php文件中,并且必须替换现有<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>

在结账页面隐藏运输标签仅显示代码下方的运输成本

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;
}
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 );

最新更新