گاهی اوقات نیاز است تا فقط اجازه خرید یک محصول را به کاربر بدهید. در واقع در سبد خرید کاربر تنها یک محصول وجود داشته و کاربر اجازه افزودن محصولات دیگر به سبد خرید خود را ندارد. در این آموزش قرار است نحوه محدود کردن سبد خرید به یک محصول در ووکامرس را به شما آموزش دهیم.

محدود کردن سبد خرید به یک محصول در ووکامرس
محدود کردن کاربر به خرید فقط یک محصول در ووکامرس

راه حل اوّل : محدود کردن تعداد محصول سبد خرید بدون خطا

در این روش، هنگامی که کاربر یک محصول را به سبد خرید اضافه می‌کند، محصول قبلی به طور خودکار از سبد خرید حذف می‌گردد. در واقع در این روش هر بار سبد خرید پاکسازی می‌شود. در صورتی که می‌خواهید از این روش استفاده کنید، قطعه کد زیر این کار را برای شما انجام خواهد داد.

/**
 * @snippet       WooCommerce Max 1 Product @ Cart
 * @author        Rodolfo Melogli
 * @compatible    WC 5.1
 * @source        Business Bloomer
 */
  
add_filter( 'woocommerce_add_to_cart_validation', 'tidaweb_only_one_in_cart', 9999, 2 );
   
function tidaweb_only_one_in_cart( $passed, $added_product_id ) {
    wc_empty_cart();
    return $passed;
}

راه حل دوّم : محدود کردن تعداد محصول سبد خرید با خطا

در این روش، کاربر وقتی محصول اوّل را به سبد خرید خود اضافه کرد، دیگر نمی‌تواند محصولات دیگر را اضافه نماید. در واقع ابتدا باید محصول موجود در سبد خرید خود را حذف کرده و سپس محصول جدید را به سبد خرید اضافه کند. در صورتی که می‌خواهید از این روش استفاده کنید، قطعه کد زیر این کار را برای شما انجام خواهد داد.

/**
 * @snippet       WooCommerce Max 1 Product @ Cart With Error
 * @author        Rasool Vahdati
 * @compatible    WC 5.1
 * @source        Tidaweb
 */
  
add_filter( 'woocommerce_add_to_cart_validation', 'tidaweb_only_one_item_allowed_add_to_cart', 10, 3 );

function tidaweb_only_one_item_allowed_add_to_cart( $passed, $product_id, $quantity ) {
    
    $cart_contents    =  WC()->cart->get_cart();
    $cart_product_ids = [];
    if(!empty($cart_contents))
    {
        foreach($cart_contents as $cart_item)
            $cart_product_ids[] = $cart_item['product_id'];
    }
    $cart_product_ids = array_unique( $cart_product_ids );

    if( count( $cart_product_ids ) >= 1 ) {
        if(in_array($product_id, $cart_product_ids)) { // same product id passed
            $passed = true;
        } else {
            // Set to false
            $passed = false;
            // Display a message
            wc_add_notice( __( "شما در لحظه فقط یک محصول را می‌توانید به سبد خرید اضافه کنید.", "woocommerce" ), "error" );
        }
    }

    return $passed;
}

در این نوشته یاد گرفتیم که چگونه می‌توان برای سبد خرید ووکامرس محدودیت گذاشت طوری که کاربر نتواند بیش از یک محصول را به سبد خرید خود اضافه کند. در صورتی که نظری دارید می‌توانید آن را با ما در میان بگذارید. همچنین اگر به دنبال ترفندهای بیشتر هستید، به ترفند وردپرس مراجعه کنید.

نوشته مرتبط
نمایش تعداد فروش محصول براساس شناسه در ووکامرس

منبع : Business Bloomer

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *