亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WooCommerce - 根據購物車小計隱藏/顯示運輸方式

WooCommerce - 根據購物車小計隱藏/顯示運輸方式

PHP
慕神8447489 2023-07-21 16:06:01
在我的 WooCommerce 商店(使用版本 4.2.2)中,我想隱藏/顯示一些基于購物車小計的運輸方式,如下所示:低于 25 歐元:僅顯示運輸方式 A 和 B,25 至 49 歐元之間:僅顯示運輸方式 C 和 D,50 歐元或以上:僅顯示免運費請注意,運輸方式 A、B、C 和 D 均為“統一費率”。我用谷歌搜索了這個并設法通過以下代碼嘗試得到這個(我只是用一種速率和一個閾值進行測試):add_filter( 'woocommerce_package_rates', 'hide_shipping', 10, 2 );function hide_shipping( $rates, $package ) {    // Retrieve cart subtotal    global $woocommerce;    $cart_subtotal = $woocommerce->cart->get_subtotal();     if( $cart_subtotal > 25 ){        unset( $rates['flat_rate:7'] );    }     return $rates;}但代碼沒有任何效果。我哪里錯了?
查看完整描述

1 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

請嘗試以下操作(在開頭的代碼中設置您的 5 種運輸方式費率 ID)。另外,對于“免費送貨”費率,請將“最低訂單金額”設置為(零)。0


add_filter( 'woocommerce_package_rates', 'hide_specific_shipping_method', 10, 2 );

function hide_specific_shipping_method( $rates, $package ) {

    // Settings: define you shipping rate IDs below

    $rate_id_1     = 'flat_rate:7';

    $rate_id_2     = 'flat_rate:11';

    $rate_id_3     = 'flat_rate:12';

    $rate_id_4     = 'flat_rate:15';

    $rate_free     = 'free_shipping:5';

    

    $cart_subtotal = WC()->cart->get_subtotal();

    

    if ( $cart_subtotal < 25 ) {

        // Enable only methods 1 et 2

        if ( isset($rates[$rate_id_3]) )

             unset( $rates[$rate_id_3] );

        if ( isset($rates[$rate_id_4]) )

             unset( $rates[$rate_id_4] );

        if ( isset($rates[$rate_free]) )

             unset( $rates[$rate_free] );

    } 

    elseif ( $cart_subtotal >= 25 && $cart_subtotal < 50 ) {

        // Enable only methods 3 et 4

        if ( isset($rates[$rate_id_1]) )

             unset( $rates[$rate_id_1] );

        if ( isset($rates[$rate_id_2]) )

             unset( $rates[$rate_id_2] );

        if ( isset($rates[$rate_free]) )

             unset( $rates[$rate_free] );

    } 

    else {

        // Enable only Free shipping

        if ( isset($rates[$rate_id_1]) )

             unset( $rates[$rate_id_1] );

        if ( isset($rates[$rate_id_2]) )

             unset( $rates[$rate_id_2] );

        if ( isset($rates[$rate_id_3]) )

             unset( $rates[$rate_id_3] );

        if ( isset($rates[$rate_id_4]) )

             unset( $rates[$rate_id_4] );

    }

    return $rates;

}

代碼位于活動子主題(或活動主題)的functions.php 文件中。經過測試并有效。

重要提示:刷新運輸緩存:
1)。此代碼已保存在您的 function.php 文件中。
2)。在運輸區域設置中,禁用/保存任何運輸方式,然后啟用返回/保存。
你已經完成了,你可以測試它。


查看完整回答
反對 回復 2023-07-21
  • 1 回答
  • 0 關注
  • 188 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號