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

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

限制購物車中的 WooCommerce 產(chǎn)品僅來自一種自定義分類

限制購物車中的 WooCommerce 產(chǎn)品僅來自一種自定義分類

PHP
慕娘9325324 2023-06-24 18:18:48
我試圖限制 Woocommerce 商店的客戶一次只能從 1 個(gè)“供應(yīng)商”訂購產(chǎn)品。我通過稱為“供應(yīng)商”的自定義分類來定義“供應(yīng)商”。我正在嘗試的代碼只是出于某種原因限制了一切。function filter_woocommerce_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id = null, $variations = null ) {// If passedif ( $passed ) {? ??? ? // If cart is NOT empty when a product is added? ? ?? ? if ( !WC()->cart->is_empty() ) {? ? ? ??? ? ? ? // Set vars? ? ? ? $current_product_tag_ids = array();? ? ? ? $in_cart_product_tag_ids = array();? ? ? ??? ? ? ? // Get current product categories via product_id? ? ? ? $current_product_tag_ids = wc_get_product_term_ids( $product_id, 'supplier' );? ? ? ? // Loop through cart items checking for product categories? ? ? ? foreach ( WC()->cart->get_cart() as $cart_item ) {? ? ? ? ? ? // Get product categories from product in cart via cart item product id? ? ? ? ? ? $in_cart_product_tag_ids = array_merge( $in_cart_product_tag_ids, wc_get_product_term_ids( $cart_item['product_id'], 'product_cat' ) );? ? ? ? }? ? ? ??? ? ? ? // Removes duplicate values? ? ? ? $in_cart_product_tag_ids = array_unique( $in_cart_product_tag_ids, SORT_NUMERIC );? ? ? ??? ? ? ? // Compare? ? ? ? $compare = array_diff( $current_product_tag_ids, $in_cart_product_tag_ids );? ? ? ??? ? ? ? // Result is NOT empty? ? ? ? if ( !empty ( $compare ) ) {? ? ? ? ? ? wc_add_notice( 'This product is with a different supplier. Please only order from 1 supplier at a time.', 'error' );? ? ? ? ? ? $passed = false;? ? ? ? }? ? }}return $passed;}add_filter( 'woocommerce_add_to_cart_validation', 'filter_woocommerce_add_to_cart_validation', 10, 5 );我并不是試圖將其限制為每個(gè)供應(yīng)商 1 個(gè)產(chǎn)品,而是試圖限制他們,以便他們每個(gè)訂單只能從 1 個(gè)供應(yīng)商處訂購產(chǎn)品。例如,一旦他們將供應(yīng)商“供應(yīng)商 1”的產(chǎn)品添加到購物籃中,他們將無法添加“供應(yīng)商 1”以外的任何其他供應(yīng)商的產(chǎn)品。
查看完整描述

1 回答

?
守著一只汪

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

以下內(nèi)容僅允許將來自一個(gè)“供應(yīng)商”的商品添加到購物車:


add_filter( 'woocommerce_add_to_cart_validation', 'only_one_supplier_by_order', 10, 2 );

function only_one_supplier_by_order( $passed, $product_id ) {

    if ( WC()->cart->is_empty() )  

        return $passed;

    

    $taxonomy = 'supplier';

    $term_ids = wp_get_post_terms( $product_id, $taxonomy, ['fields' => 'ids']);


    // Loop through cart items

    foreach ( WC()->cart->get_cart() as $cart_item ) {

        if( ! has_term( $term_ids, $taxonomy, $cart_item['product_id'] ) ) {

            // Displaying a custom notice

            wc_add_notice( __('This product is with a different supplier. Please only order from 1 supplier at a time.'), 'error' );

            return false; // Avoid add to cart

        }

    }

    return $passed;

}

現(xiàn)在,為了確??蛻魺o法向購物車中的不同供應(yīng)商結(jié)帳,您可以添加以下內(nèi)容:


// To be sure (avoiding checkout)

add_action( 'woocommerce_check_cart_items', 'only_one_supplier_by_order_check' );

function only_one_supplier_by_order_check() {

    $taxonomy   = 'supplier';

    $term_names = []; // Initializing


    // Loop through cart items

    foreach ( WC()->cart->get_cart() as $cart_item ) {

        $terms = wp_get_post_terms( $cart_item['product_id'], $taxonomy );

        if( ! empty($terms) ) {

            $term  = reset($terms);

            

            $term_names[$term->term_id] = $term->name;  

        }

    }


    // Allow only one supplier in cart (avoid checkout for more than one

    if( count( $term_names ) > 1 ) {


        // Displaying a custom notice

        wc_add_notice( __('Only items from one supplier at the time are allowed in cart'), 'error' );

    }

}

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


查看完整回答
反對(duì) 回復(fù) 2023-06-24
  • 1 回答
  • 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)