S@jj@D 0 ارسال شده در اسفند 95 گزارش بازنشر ارسال شده در اسفند 95 سلام و وقت بخیر به همه دوستان ارجمند؛ همانطور که در عنوان نوشتم میخام در ووکامرس هر کاربر در هر تراکنش فقط از یک دسته بندی بتونه سفارش بده! برای روشن تر شدن مسئله الگوریتمش رو خدمتتون بیان میکنم: 1- کاربر در مرحله اول اجازه اضافه کردن محصول از هر دسته بندی رو به سبد خرید داره. 2- اضافه کردن محصول های بعدی به سبد خرید با شرط قرار گرفتن در دسته بندی اولین محصول اضافه شده به سبد صورت میگیره. (اگر محصول اول از دسته بندی X بوده محصولات بعدی هم باید از دسته بندی X باشن ... اگر محصول اول از دسته بندی Y بوده محصولات بعدی هم باید از دسته بندی Y باشن و همینطور الی آخر ...) 3- در صورت عدم رعایت مرحله 2 پیغام خطایی ظاهر بشه با این مضمون که "شما در هر بار سفارش (در هر تراکنش) فقط اجازه سفارش از یک دسته بندی را دارید" (حالا این پیغام خطا میتونه در هنگام کلیک بر روی افزودن به سبد خرید به صورت پاپ آپ ظاهر بشه یا مثه پیغام خطاهای معمول ووکامرس در بالای صفحه ظاهر بشه) 4- در صورت رعایت مرحله 2 کاربر مشکلی برای ادامه کار و تسویه حساب نداشته باشه و سفارش به صورت کامل ثبت بشه! سپاس از شما. نقل قول لینک به ارسال
مهدی 1668 ارسال شده در فروردین 96 گزارش بازنشر ارسال شده در فروردین 96 سلام http://stackoverflow.com/a/35072168 1 نقل قول لینک به ارسال
S@jj@D 0 ارسال شده در فروردین 96 مالک گزارش بازنشر ارسال شده در فروردین 96 در در ۱۳۹۶/۱/۱۰ ه.ش. at 18:35، مهدی گفته است : سلام http://stackoverflow.com/a/35072168 درود و سپاس از شما اما این تاپیک رو دیده بودم نه این جوابگوی مشکل من نیست! نقل قول لینک به ارسال
مهدی 1668 ارسال شده در فروردین 96 گزارش بازنشر ارسال شده در فروردین 96 این رو تست کنید 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 نقل قول لینک به ارسال
S@jj@D 0 ارسال شده در فروردین 96 مالک گزارش بازنشر ارسال شده در فروردین 96 خیلی ممنونم از پیگیری شما آقا مهدی عزیز اما این کد به کاربر اجازه میده از هر دسته ای فقط یک محصول اضافه کنه به سبد خرید! نقل قول لینک به ارسال
مهدی 1668 ارسال شده در فروردین 96 گزارش بازنشر ارسال شده در فروردین 96 متوجه نشدم، الان مشکلتون برطرف شد یا اینکه اصلا سوالتون چیز دیگهای بود؟ نقل قول لینک به ارسال
S@jj@D 0 ارسال شده در فروردین 96 مالک گزارش بازنشر ارسال شده در فروردین 96 نه دیگه برطرف نشد! بنده عرض کردم میخام کاربر در هر تراکنش فقط از یک دسته بندی بتونه سفارش بده نه اینکه از هر دسته بندی یک آیتم فقط بتونه سفارش بده! کدی که شما دادین از هر دسته بندی یک آیتم فقط میتونه سفارش بده! من به صورت الگوریتم گفتم که مسئله روشن تر شه! با مثال میگم این بار: فرض می کنیم یک دسته بندی داریم به نام "الف" و یک دسته بندی هم داریم به نام "ب"! کاربر برای اولین محصول میتونه از هر دو دسته بندی به سبد خریدش اضافه کنه! اما شرط ادامه خرید و تسویه حساب اینه که محصولات بعدی رو هم از همون دسته بندی انتخاب کنه! مثلا اگر محصول اول از دسته بندی "الف" بود محصولات بعدی هم از دسته بندی "الف" باشن و اگر محصول اول از دسته بندی "ب" بود محصولات بعدی هم از دسته بندی "ب" باشن! در غیر این صورت پیغام خطا ظاهر شه! نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .