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

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

根據(jù) WooCommerce 購(gòu)物車總數(shù)添加或刪除特定購(gòu)物車項(xiàng)目

根據(jù) WooCommerce 購(gòu)物車總數(shù)添加或刪除特定購(gòu)物車項(xiàng)目

PHP
不負(fù)相思意 2022-10-28 09:38:48
如果訂單總額高于 199.99 美元,我正在嘗試將免費(fèi)產(chǎn)品添加到購(gòu)物車我已經(jīng)實(shí)現(xiàn)了這一點(diǎn)并且它正在發(fā)揮作用。問(wèn)題是,如果用戶隨后從購(gòu)物車中刪除了一個(gè)商品并再次低于 199.99 美元(以防止游戲系統(tǒng)),我需要?jiǎng)h除該產(chǎn)品。我所擁有的似乎正在工作。問(wèn)題是,在 REMOVE FROM CART 操作似乎起作用(或刷新頁(yè)面)之前,我似乎需要單擊 2 個(gè)鏈接。這是什么原因造成的?是否可以通過(guò) AJAX 完成刪除操作?// -------------------------------------------// ADD PRODUCT IF ORDER MINIMUM ABOVE 200/** Automatically adding the product to the cart when cart total amount reach to $199.99.*/function aapc_add_product_to_cart() {    global $woocommerce;    $cart_total = 199.99;       if ( $woocommerce->cart->total >= $cart_total ) {        if ( is_user_logged_in() ) {            $free_product_id = 339;  // Product Id of the free product which will get added to cart            $found      = false;            //check if product already in cart            if ( sizeof( WC()->cart->get_cart() ) > 0 ) {                foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {                    $_product = $values['data'];                    if ( $_product->get_id() == $free_product_id )                        $found = true;                                  }                // if product not found, add it                if ( ! $found )                    WC()->cart->add_to_cart( $free_product_id );            } else {                // if no products in cart, add it                WC()->cart->add_to_cart( $free_product_id );            }                }    }    if ( $woocommerce->cart->total <= $cart_total && $found ) {                WC()->cart->remove_cart_item( $free_product_id );            }       }add_action( 'template_redirect', 'aapc_add_product_to_cart' );add_action( 'template_redirect', 'remove_product_from_cart_programmatically' );
查看完整描述

1 回答

?
桃花長(zhǎng)相依

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

您不應(yīng)該使用template_redirect鉤子根據(jù)購(gòu)物車的總閾值添加或刪除免費(fèi)產(chǎn)品……此外,您的代碼有點(diǎn)過(guò)時(shí)并存在一些錯(cuò)誤。


而是使用woocommerce_before_calculate_totals啟用 Ajax 的鉤子,這樣:


add_action( 'woocommerce_before_calculate_totals', 'add_or_remove_cart_items', 10, 1 );

function add_or_remove_cart_items( $cart ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )

        return;


    // ONLY for logged users (and avoiding the hook repetition) 

    if ( ! is_user_logged_in() && did_action( 'woocommerce_before_calculate_totals' ) >= 2 )

        return;


    $threshold_amount = 200; // The threshold amount for cart total

    $free_product_id  = 339; // ID of the free product

    $cart_items_total = 0; // Initializing


    // Loop through cart items

    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ){

        // Check if the free product is in cart

        if ( $cart_item['data']->get_id() == $free_product_id ) {

            $free_item_key = $cart_item_key;

        }

        // Get cart subtotal incl. tax from items (with discounts if any)

        $cart_items_total += $cart_item['line_total'] + $cart_item['line_tax'];

    }


    // If Cart total is up to the defined amount and if the free products is not in cart, we add it.

    if ( $cart_items_total >= $threshold_amount && ! isset($free_item_key) ) {

        $cart->add_to_cart( $free_product_id );

    }

    // If cart total is below the defined amount and free product is in cart, we remove it.

    elseif ( $cart_items_total < $threshold_amount && isset($free_item_key) ) {

        $cart->remove_cart_item( $free_item_key );

    }

}

代碼在您的活動(dòng)子主題(或活動(dòng)主題)的functions.php 文件中。測(cè)試和工作。


查看完整回答
反對(duì) 回復(fù) 2022-10-28
  • 1 回答
  • 0 關(guān)注
  • 151 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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