第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

根據(jù)特定運(yùn)輸類別的購物車商品數(shù)量顯示或隱藏運(yùn)輸方式

根據(jù)特定運(yùn)輸類別的購物車商品數(shù)量顯示或隱藏運(yùn)輸方式

PHP
慕的地8271018 2023-10-22 21:13:59
僅當(dāng)購物車有 4 個(gè)或更少的特定運(yùn)輸類別的產(chǎn)品時(shí),我才嘗試取消設(shè)置兩種運(yùn)輸方式。運(yùn)送方式: flat_rate:20 和 flat_rate:21船級(jí):182這就是我所擁有的:add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_shipping_class', 10, 2 );function hide_shipping_method_based_on_shipping_class( $rates, $package ){    if ( is_admin() && ! defined( 'DOING_AJAX' ) )        return;    // Shipping Class To Find    $class = 182;    // Number Of Shipping Class Items In Cart    $amount = 4;    // Shipping Methods To Hide    $method_key_ids = array('flat_rate:20', 'flat_rate:21');    // Checking In Cart Items    foreach( $package['contents'] as $item ) {        // If We Find The Shipping Class and Number of Items        if( $item['data']->get_shipping_class_id() == $class && count($package['contents']) <= $amount ){            foreach( $method_key_ids as $method_key_id ){                unset($rates[$method_key_id]); // Remove Targeted Methods            }            break; // Stop The Loop        }    }    return $rates;}創(chuàng)建以下邏輯:1. 如果購物車有 4 件或更少的運(yùn)輸類別 181 的產(chǎn)品,請(qǐng)取消設(shè)置以下運(yùn)輸方式:'統(tǒng)一費(fèi)率:20''統(tǒng)一費(fèi)率:21'2. 如果購物車有 5 個(gè)或更多運(yùn)輸類別 181 的產(chǎn)品,請(qǐng)取消設(shè)置以下運(yùn)輸方式:'wf_shipping_ups:07''wf_shipping_ups:08''wf_shipping_ups:11''wf_shipping_ups:54''wf_shipping_ups:65''wf_shipping_ups:70''wf_shipping_ups:74''免費(fèi)送貨:2''請(qǐng)求運(yùn)輸報(bào)價(jià)'如果我單獨(dú)使用它們,這兩個(gè)代碼都可以工作。但是當(dāng)我嘗試同時(shí)使用兩者時(shí)出現(xiàn)錯(cuò)誤。我收到以下錯(cuò)誤: 無法重新聲明 hide_shipping_method_based_on_shipping_class() (之前在 /functions.php:272 中聲明)
查看完整描述

2 回答

?
夢(mèng)里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

您應(yīng)該為每個(gè)代碼片段使用不同的函數(shù)名稱,但最好的方法是將所有內(nèi)容合并到一個(gè)唯一的函數(shù)中。

以下是使其在獨(dú)特功能中工作的方法(對(duì)于來自特定運(yùn)輸方式的物品):

  • 當(dāng)購物車中有 4 件或更少的商品時(shí)隱藏一些運(yùn)輸方式

  • 當(dāng)購物車中有 4 件或更少的商品時(shí)隱藏一些其他運(yùn)輸方式

代碼:

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

function show_hide_shipping_methods_based_on_shipping_class( $rates, $package ) {

    $targeted_class_ids  = array(182); // Shipping Class To Find

    

    $allowed_max_qty     = 4; // Max allowed quantity for the shipping class

    

    $shipping_rates_ids1 = array( // Shipping Method rates Ids To Hide if more than 4 items are in cart

        'wf_shipping_ups:07',

        'wf_shipping_ups:08',

        'wf_shipping_ups:11',

        'wf_shipping_ups:54',

        'wf_shipping_ups:65',

        'wf_shipping_ups:70',

        'wf_shipping_ups:74',

        'free_shipping:2',

        'request_shipping_quote',

    );

    

    $shipping_rates_ids2 = array( // Shipping Method rates Ids to Hide if 4 or less items are in cart

        'flat_rate:20',

        'flat_rate:20',

    );

    

    $related_total_qty   = 0; // Initializing


    // Checking cart items for current package

    foreach( $package['contents'] as $key => $cart_item ) {

        if( in_array( $cart_item['data']->get_shipping_class_id(), $targeted_class_ids ) ){

            $related_total_qty += $cart_item['quantity'];

        }

    }

    

    // When total allowed quantity is more than allowed (for items from defined shipping classes)

    if ( $related_total_qty > $allowed_max_qty ) {

        // Hide related defined shipping methods (more than 4 items)

        foreach( $shipping_rates_ids1 as $shipping_rate_id ) {

            if( isset($rates[$shipping_rate_id]) ) {

                unset($rates[$shipping_rate_id]); // Remove Targeted Methods

            }

        }

    } else {

        // Hide related defined shipping methods (4 or less items)

        foreach( $shipping_rates_ids2 as $shipping_rate_id ) {

            if( isset($rates[$shipping_rate_id]) ) {

                unset($rates[$shipping_rate_id]); // Remove Targeted Methods

            }

        }

    }

    return $rates;

}

代碼位于活動(dòng)子主題(或活動(dòng)主題)的functions.php 文件中。未經(jīng)測(cè)試它應(yīng)該有效。

刷新運(yùn)輸緩存:

  1. 此代碼已保存在您的functions.php 文件中。

  2. 在運(yùn)輸區(qū)域設(shè)置中,禁用/保存任何運(yùn)輸方式,然后啟用返回/保存。

    你已經(jīng)完成了,你可以測(cè)試它。


處理物品數(shù)量而不是物品累計(jì)數(shù)量:

代替:

$related_total_qty += $cart_item['quantity'];

經(jīng)過

$related_total_qty++;


查看完整回答
反對(duì) 回復(fù) 2023-10-22
?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

我假設(shè)您已經(jīng)通過依次編寫這兩個(gè)代碼片段來組合它們。


由于您兩次使用相同的函數(shù)名稱,因此出現(xiàn)錯(cuò)誤:無法重新聲明......


因此,您可以嘗試通過重命名第二個(gè)片段的函數(shù)名稱來修復(fù)它,如下所示 -


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

function hide_shipping_method_based_on_shipping_class_logic_2( $rates, $package ) {

    // other stuffs

}


查看完整回答
反對(duì) 回復(fù) 2023-10-22
  • 2 回答
  • 0 關(guān)注
  • 139 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)