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

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

增加 WooCommerce 購(gòu)物車(chē)中每個(gè)類(lèi)別計(jì)數(shù)的運(yùn)輸成本

增加 WooCommerce 購(gòu)物車(chē)中每個(gè)類(lèi)別計(jì)數(shù)的運(yùn)輸成本

PHP
瀟瀟雨雨 2023-09-22 17:33:50
我正在嘗試根據(jù)購(gòu)物車(chē)中的類(lèi)別數(shù)量(計(jì)數(shù))來(lái)增加運(yùn)費(fèi)。到目前為止我有這個(gè):add_filter( 'woocommerce_package_rates', 'vh_wc_shipping_costs', 20 );function vh_wc_shipping_costs( $rates ) {    $increase_cost = 50;    $cat_ids       = array();    $count         = 0;    foreach ( wc()->cart->get_cart() as $cart_item_key => $cart_item ) {        $cat_ids = array_merge(            $cat_ids,            (array) $cart_item['data']->get_category_ids()        );        $count   = count( $cat_ids );    }    $i=0;    if ( $count >= 1 ) {        foreach ( $rates as $rate_key => $rate ) {            $i++; $i <= $count;            // Excluding free shipping methods            if ( 'free_shipping' !== $rate->method_id ) {                // Get old cost                $old_cost = $rates[ $rate_key ]->cost;                // Set rate cost                $rates[ $rate_key ]->cost = $old_cost + $increase_cost;            }        }    }    return $rates;}但由于某種原因,它不會(huì)增加每個(gè)額外類(lèi)別的運(yùn)輸成本。另外,我想補(bǔ)充一下額外費(fèi)用。任何建議表示贊賞。
查看完整描述

1 回答

?
吃雞游戲

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


以下代碼將為購(gòu)物車(chē)中找到的每個(gè)附加產(chǎn)品類(lèi)別添加額外的運(yùn)費(fèi)(因此不適用于第一個(gè)):


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

function filter_shipping_rates_costs( $rates, $package ) {

? ? $step_cost = 50;

? ? $term_ids? = array();


? ? // Loop through cart items for the current shipping package

? ? foreach( $package['contents'] as $cart_item ){

? ? ? ? $term_ids = array_merge(

? ? ? ? ? ? $term_ids,

? ? ? ? ? ? (array) $cart_item['data']->get_category_ids()

? ? ? ? );

? ? }


? ? $terms_count = count( $term_ids );


? ? // Loop through shipping rates

? ? foreach ( $rates as $rate_key => $rate ) {

? ? ? ? // Excluding free shipping methods

? ? ? ? if ( 'free_shipping' !== $rate->method_id && $terms_count > 1 ) {

? ? ? ? ? ? // Set rate cost

? ? ? ? ? ? $rates[$rate_key]->cost = $rate->cost + ($step_cost * ($terms_count - 1));

? ? ? ? }

? ? }


? ? return $rates;

}

現(xiàn)在,如果您想為購(gòu)物車(chē)中找到的每個(gè)類(lèi)別添加額外的運(yùn)費(fèi),請(qǐng)使用以下命令:


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

function filter_shipping_rates_costs( $rates, $package ) {

? ? $step_cost = 50;

? ? $term_ids? = array();


? ? // Loop through cart items for the current shipping package

? ? foreach( $package['contents'] as $cart_item ){

? ? ? ? $term_ids = array_merge(

? ? ? ? ? ? $term_ids,

? ? ? ? ? ? (array) $cart_item['data']->get_category_ids()

? ? ? ? );

? ? }


? ? $terms_count = count( $term_ids );


? ? // Loop through shipping rates

? ? foreach ( $rates as $rate_key => $rate ) {

? ? ? ? // Excluding free shipping methods

? ? ? ? if ( 'free_shipping' !== $rate->method_id && $terms_count > 0 ) {

? ? ? ? ? ? // Set rate cost

? ? ? ? ? ? $rates[$rate_key]->cost = $rate->cost + ($step_cost * $terms_count);

? ? ? ? }

? ? }


? ? return $rates;

}

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

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

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

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

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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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