WooCommerce 修正購物車免運費時 顯示兩個運送方式選項的問題

2017-07-04

這個問題還滿怪的 而且一直都沒有被修正

未達免運費門檻時
顯示運費選項
這樣是正常沒錯
如下圖

但當達到免運費門檻時
卻會顯示兩個選項
一個是要運費 一個是免運費 (也就是設定的兩種運費方式)
如下圖

這樣實在是太怪了
使用者應該會相當困擾

修正方式為在 wp-includes/functions.php 中加入以下程式

function hide_shipping_when_free_is_available( $rates ) {
	$free = array();

	foreach ( $rates as $rate_id => $rate ) {
		if ( 'free_shipping' === $rate->method_id ) {
			$free[ $rate_id ] = $rate;
		}
	}

	return ! empty( $free ) ? $free : $rates;
}

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );

這樣當達到免運費門檻時
就只會出現一個選項
如下圖

20170801 更新

多種運送方式也是適用的
如下
未達免運費門檻

已達免運費門檻

ref:

Woocommerce 2.6版運費設定與免運費修正

Comments

  • Kumiko 說:

    請問,如果有兩個以上運送方式的選項,如何保留運送方式選擇,但運費顯示為$0 呢?
    謝謝

  • hsin 說:

    我記得多個運送方式也適用,例如原本是「宅配$80,貨運$60」,達免運費門檻後,會變成「宅配(免運費),貨運(免運費)」,依舊可以選擇。

  • Kumiko 說:

    謝謝你的回覆。
    不過我試了發現會變成只剩下一個選項 免運費
    可是無法選擇運送方式@@
    不知道這是否和佈景主題有關?
    謝謝

  • hsin 說:

    是有這個可能,我是用預設佈景主題測試的(已將測試頁面截圖於文章末),或許你可以改成預設佈景主題後試試看。

  • Kumiko 說:

    謝謝你熱心地回答:)

  • KORVER 說:

    你好!我目前遇到 wp-includes/functions.php因為權限是ROOT我沒辦法做更改,請問還有其他辦法嗎?

  • KORVER 說:

    我試過其他佈景主題,一樣沒出現 宅配(免運費),貨運(免運費)

  • hsin 說:

    可能是運送方式設定的問題 請先參考如何設定運送方式

  • 發表迴響

    彙整

    分類