本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


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 中即可!


Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

參與討論

2 則留言

  1. 自動引用通知: [WooCommerce] 商品個別運費設定的做法 – 商品運送類別 | 一介資男
  2. 自動引用通知: [WordPress] WooCommerce 客製化運費規則的方法 | 一介資男

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon