本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
WooCommerce 有個功能叫做「運送類別」,在「設定」->「運送方式」->「運送類別」下。
設定好運送類別後還不能做什麼,這時候到「運送區域」下的「單一費率」設定可以發現下方多了一個指定類別運費的欄位可以填寫!
最有趣的事是這邊可以填負數(-100),跟基本運費相消,就達成免運拉~ 透過這種單一商品指定免運的做法也算是滿意外的發現,也因此造成網路上常見使用的「當免運時隱藏其他運費」功能失靈,下列程式碼片段為加強判斷,當運費為 0
的時候也直接顯示為單一免運費選項。
function hide_shipping_when_free_is_available($rates) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free = array();
$free[$rate_id] = $rate;
break;
}
if ( 'flat_rate' === $rate->method_id ) {
if ($rate->cost == 0) {
$free = array();
$rate->label = __('免運費', 'mxp-wc-checkout-fields-custom');
$free[$rate_id] = $rate;
break;
}
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100, 1 );
將上述程式碼片段貼在當前使用主題下的 functions.php
中即可!