php WooCommerce -免费送货时隐藏其他送货方式[已关闭]

xdyibdwo  于 2023-01-16  发布在  PHP
关注(0)|答案(1)|浏览(110)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
我想隐藏其他航运选项时,免费送货可在Woocommerce。
因为最新版本的woocommerce现在仍然显示其他运输选项,即使有免费送货选项。
请帮帮忙

6ljaweal

6ljaweal1#

有这个最近的代码片段WooCommerce 2.6+。您可以使用:

add_filter( 'woocommerce_package_rates', 'hide_other_shipping_when_free_is_available', 100, 2 );

function hide_other_shipping_when_free_is_available( $rates, $package ) {

    $free = array();
    foreach ( $rates as $rate_id => $rate ) {
        if ( 'free_shipping' === $rate->method_id ) {
            $free[ $rate_id ] = $rate;
            break;
        }
    }
    return ! empty( $free ) ? $free : $rates;
}
    • 您将需要刷新航运缓存数据:**禁用,保存和启用,保存当前航运区的相关航运方式,在woocommerce航运设置。

对于WooCommerce 2.5,您应该试试这个:

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );

function hide_shipping_when_free_is_available( $rates, $package ) {
    
    // Only modify rates if free_shipping is present
    if ( isset( $rates['free_shipping'] ) ) {
    
        // To unset a single rate/method, do the following. This example unsets flat_rate shipping
        unset( $rates['flat_rate'] );
        
        // To unset all methods except for free_shipping, do the following
        $free_shipping          = $rates['free_shipping'];
        $rates                  = array();
        $rates['free_shipping'] = $free_shipping;
    }
    
    return $rates;
}
  • 将此代码粘贴到位于当前子主题或主题的function.php文件中。*

参考:免费送货时隐藏其他送货方式 (官方文档)
相关:

  • 当WooCommerce中有运费时,如何隐藏免费送货
  • 当WooCommerce 3中提供免费送货时,隐藏具体信息
  • WooCommerce:隐藏其他送货方式,除了当地皮卡时,免费送货
  • WooCommerce免费送货,如果超过5磅

相关问题