S@jj@D

امکان ثبت سفارش فقط از یک دسته بندی در هر تراکنش در ووکامرس

7 پست در این موضوع قرار دارد

سلام و وقت بخیر به همه دوستان ارجمند؛

همانطور که در عنوان نوشتم میخام در ووکامرس هر کاربر در هر تراکنش فقط از یک دسته بندی بتونه سفارش بده! برای روشن تر شدن مسئله الگوریتمش رو خدمتتون بیان میکنم:

1- کاربر در مرحله اول اجازه اضافه کردن محصول از هر دسته بندی رو به سبد خرید داره.

2- اضافه کردن محصول های بعدی به سبد خرید با شرط قرار گرفتن در دسته بندی اولین محصول اضافه شده به سبد صورت میگیره. (اگر محصول اول از دسته بندی X بوده محصولات بعدی هم باید از دسته بندی X باشن ... اگر محصول اول از دسته بندی Y بوده محصولات بعدی هم باید از دسته بندی Y باشن و همینطور الی آخر ...)

3- در صورت عدم رعایت مرحله 2 پیغام خطایی ظاهر بشه با این مضمون که "شما در هر بار سفارش (در هر تراکنش) فقط اجازه سفارش از یک دسته بندی را دارید" (حالا این پیغام خطا میتونه در هنگام کلیک بر روی افزودن به سبد خرید به صورت پاپ آپ ظاهر بشه یا مثه پیغام خطاهای معمول ووکامرس در بالای صفحه ظاهر بشه)

4- در صورت رعایت مرحله 2 کاربر مشکلی برای ادامه کار و تسویه حساب نداشته باشه و سفارش به صورت کامل ثبت بشه!

سپاس از شما.

0

به اشتراک گذاری این پست


لینک به پست

سلام

http://stackoverflow.com/a/35072168

 

1

به اشتراک گذاری این پست


لینک به پست
در در ۱۳۹۶/۱/۱۰ ه‍.ش. at 18:35، مهدی گفته است :

سلام


http://stackoverflow.com/a/35072168

 

درود و سپاس از شما اما این تاپیک رو دیده بودم نه این جوابگوی مشکل من نیست!

0

به اشتراک گذاری این پست


لینک به پست

این رو تست کنید

function itl_is_product_the_same_cat( $valid, $product_id, $quantity ) {
    global $woocommerce;

    foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
        $_product 	  = $values['data'];
        $terms 		  = get_the_terms( $_product->id, 'product_cat' );
        $target_terms = get_the_terms( $product_id, 'product_cat' ); // get the current items

        foreach ( $terms as $term ) {
            $cat_ids[] = $term->term_id;  // get all the item categories in the cart
        }
        foreach ($target_terms as $term) {
            $target_cat_ids[] = $term->term_id; // get all the categories of the product
        }
    }

	if ( ! empty ( WC()->cart->get_cart() ) && $valid ) {
		$same_cat = array_intersect( $cat_ids, $target_cat_ids ); // check if they have the same category

		if ( count( $same_cat ) == 1 ) {
			wc_add_notice( 'You can only have 1 item per category in your cart', 'error' );
			return false;
		} else {
			return $valid;
		}
	} else {
		return $valid;
	}
}
add_filter( 'woocommerce_add_to_cart_validation', 'itl_is_product_the_same_cat', 10, 3 );

 

1

به اشتراک گذاری این پست


لینک به پست

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

0

به اشتراک گذاری این پست


لینک به پست

متوجه نشدم، الان مشکل‌تون برطرف شد یا اینکه اصلا سوال‌تون چیز دیگه‌ای بود؟

0

به اشتراک گذاری این پست


لینک به پست

نه دیگه برطرف نشد! بنده عرض کردم میخام کاربر در هر تراکنش فقط از یک دسته بندی بتونه سفارش بده نه اینکه از هر دسته بندی یک آیتم فقط بتونه سفارش بده! کدی که شما دادین از هر دسته بندی یک آیتم فقط میتونه سفارش بده! من به صورت الگوریتم گفتم که مسئله روشن تر شه!

با مثال میگم این بار: فرض می کنیم یک دسته بندی داریم به نام "الف" و یک دسته بندی هم داریم به نام "ب"! کاربر برای اولین محصول میتونه از هر دو دسته بندی به سبد خریدش اضافه کنه! اما شرط ادامه خرید و تسویه حساب اینه که محصولات بعدی رو هم از همون دسته بندی انتخاب کنه! مثلا اگر محصول اول از دسته بندی "الف" بود محصولات بعدی هم از دسته بندی "الف" باشن و اگر محصول اول از دسته بندی "ب" بود محصولات بعدی هم از دسته بندی "ب" باشن! در غیر این صورت پیغام خطا ظاهر شه!

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط farhadpotter
      با سلام
       مشکلی در فروشگاهم وجود داره که خرید مشتریان رو مختل کرده.
      من از قالب بیگ شاپ استفاده می کنم و فروشگاه ووکامرسی دارم.
      در صفحه مربوط به ورود اطلاعات مشتری قبل از پرداخت، آخرین گزینه قبول قوانین سایت هست که باید تیکش زده بشه.
      در همه مرورگرها به جز کروم، تیک پذیرش قوانین درجای درست نمایش داده میشه اما در مرورگر کروم این تیک بیرون صفحه قرار میگیره.
      با هیچ افزونه ای هم نتونستم درستش کنم و تصحیح کدش رو هم بلد نیستم انجام بدم.
      این هم آدرس فروشگاه:
      http://payamesalim.com
      لطفا راهنمایی کنید.
      با تشکر
    • توسط mohammad13
      سلام.
      میخواستم بپرسم افزونه ای هست برای ووکامرس که وقتی تعداد محصولات در سبد خرید مثلا بیشتر از ۵ تا میشود قیمت حمل و نقل را افزایش دهد.
      در صورت وجود چنین افزونه ای نام آن را ارسال کنید و در غیر اینصورت راهی برای اینکار معرفی نمایید. ممنون
    • توسط sabig
      سلام دوستان،
      من در حال حاضر یک وب سایت دارم که روی اون فعلا فقط 3 تا محصول قرار گرفته. 
      چند وقته فکرم مشغول شده که آیا از EDD که در حال حاضر روی سایتم فعاله به ووکامرس مهاجرت بکنم یا نه؟
      یکی از دلایلم هم اینه که برای ووکامرس افزونه های بسیار بیشتری وجود داره و با اکثر افزونه های موجود هماهنگ هست.
      به نظرتون از EDD به ووکامرس مهاجرت کنم؟
      تعداد محوصلات سایتم هم در آینده خیلی بشه، میشه 20 تا ...
      به نظر شما عاقلانس یا با EDD ادامه بدم؟
      در ضمن در مورد انتقال دستی این تعداد محصولات هم ممنون میشم راهنمایی کنید.
       
    • توسط asemanmoradi
      سلام دوستان . خسته نباشید .
      داخل صفحه Product_archive قیمت محصول نمایش داده نمیشه میخواستم راهنماییم کنید . مرسی
      کدی که برای نمایش قیمت قرار دادم اینه :
      <?php if ( $price_html = $product->get_price_html() ) : ?>
        <?php echo $price_html; ?>
      <?php endif; ?>
      توی صفحه های دیگه هم همینو قرار دادم و اجرا میشه مشکلی نداره ولی توی این صفحه به مشکل میخوره و چیزی نمایش نمیده
    • توسط mahdikabook
      سلام و روزتون بخیر الان چند روزی است ما اصلا نمیتونیم ویرایش انجام بدیم 
      واقعا برامو عذاب آور شده که این مشکلو داریم 
      وقتی وارد سایت میشیم بخش محصولات را انتخاب مکنیم
      و یک محصول را ویرایش سریع میزنیم بعد روی بروزرسانی کلیک میکنیم همین جوری  رو دایره میمونه لطفا این مشکل منو حل کنید