گاهی اوقات نیاز است تا فقط اجازه خرید یک محصول را به کاربر بدهید. در واقع در سبد خرید کاربر تنها یک محصول وجود داشته و کاربر اجازه افزودن محصولات دیگر به سبد خرید خود را ندارد. در این آموزش قرار است نحوه محدود کردن سبد خرید به یک محصول در ووکامرس را به شما آموزش دهیم.
راه حل اوّل : محدود کردن تعداد محصول سبد خرید بدون خطا
در این روش، هنگامی که کاربر یک محصول را به سبد خرید اضافه میکند، محصول قبلی به طور خودکار از سبد خرید حذف میگردد. در واقع در این روش هر بار سبد خرید پاکسازی میشود. در صورتی که میخواهید از این روش استفاده کنید، قطعه کد زیر این کار را برای شما انجام خواهد داد.
/**
* @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
واقعا عالی و مفید، خیلی جا دنبال این کد گشتم ولی اینجا تنها جایی بود که پیداش کردم!
بازم ممنون
این کد را در کجا باید بنویسیم
باسلام
این قطعه کد را میتوانید در فایل functions.php پوسته فرزند یا در فایل افزونهای که مینویسید قرار دهید.
موفق باشی