最近把 WooCommerce 更到新版後,在設定運送方式的地方,會發現到先前的像單一運費、免運費、貨到付款.... 似乎都不見了,而並不是不見了,WooCommerce2.6 版則是將運送方式變成一個模組統來控管,之前的那些選項則全部集合在裏面,當需要時再逐一的新增,雖然説 WooCommerce 內建就有免運費的機制,同時在消費金額達到門檻時,則是出現免運費選項,而不是直接跳到免運費,這樣的結帳方式,實在有點怪異,不符目前大家的購物習慣,因此一塊來看看,要如何來修正這個免運費的設定吧!


WooCommerce 免運費修正:

修正:免運費
適用版本:2.6+

Step1
首先,切到 WooCommerce 設定 / 運送方式,接着點右下的新增按鈕。


Step2
接着從下拉選單中,選擇所需的運費方式。


Step3
新增完畢後,再點下方的設定


Step4
就可設定運費的費用。


Step5
完成單一運費後,接下來再新增一個免運費。


Step6
新增完畢後,再設定免運費的門檻外,同時在下拉選單中,設定免費的條件。


Step7
這樣就完成單一運費與免運費的運送方式啦!


Step8
這時當購物金額超過剛所設定的的 1000 元,在運送方式的地方,卻出現免費運的選項,這實在有點怪異。


Step9
接着開啓主題中的 functions.php,再加入以下的修正碼。

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );
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;
			break;
		}
	}


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


Step10
這時再回到原來的結帳畫面,在運費方式的地方,就會自動變成免運費啦!