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

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

參與討論

2 則留言

發佈留言

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