جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمت‌ها از سال جدید | و ...

مشاهده اطلاعات بیشتر...
ثانیه
دقیقه
ساعت
روز
پویا واقفی
3 سال پیش توسط پویا واقفی مطرح شد
0 پاسخ

چگونه میتوان دریافت که ارایه خالیست

سلام دوستان، من دارم روی یک پروژه ی فروشگاه اینترنتی کار میکنم که دارای دو نوع محصول ویدیویی و فیزیکی هستند. منظور از محصولات فیزیکی یعنی محصولاتی که به ادرس شخص ارسال میشوند در حالیکه ویدیویی ها فقط بایستی "دانلود" شوند.

حالا من باید یک session اضافه کنم در صورتیکه یکی از حالت های زیر برقرار بود:

۱- سبد خرید شخص فقط دارای محصولات فیزیکی بود
۲- سبد خرید شخص دارای محصولات فیزیکی و ویدیویی بود
۳- سبد خرید شخص فقط دارای محصولات ویدیویی بود

این هم کد بنده هست:

$product_videos = [];

$foundOrder = Cart::select('crt_content')->whereCrtId($cart->crt_id)->latest()->first();
$foundOrder = json_decode($foundOrder->crt_content);

foreach ($foundOrder as $key => $value) {
   $product = Product::with('uploaded')->wherePrdId($value->id)->select('*')->first();

   array_push($product_videos, $product->prd_video);

   $prds[] = [
  $product,
  $value->quantity,
  $value->price
   ];

   $product_videos = array_unique($product_videos);

   $pvWithoutNull=array_filter($product_videos,function($_v){return $_v !== null;}); //$product_videos without any null value
   if(in_array(null, $product_videos)){
    if(empty($pvWithoutNull))
        Session::put('physical', 1); // only physical
    else
        Session::put('physical-video', 1); // physical-video
}else{
        Session::put('physical', 0); // only video
}
}

حالا اگر من فقط محصولات فیزیکی رو به سبد خرید اضافه کنم سشن زیر submit میشود:

Session::put('physical-video', 1);

در صورتیکه باید حالت اول اجرا شود:

Session::put('physical', 1); 

من در هر کدام از سه حالت از مقدار dd $pvWithoutNull گرفتم و نتایج هرکدوم رو اینجا گذاشتم:

فقط کالاهای فیزیکی در سبد خرید هستند =>
فقط کالاهای فیزیکی در سبد خرید هستند

فقط کالاهای فیزیکی در سبد خرید هستند =>
هر دو نوع کالاهای فیزیکی و دانلودی در سبد خرید هستند

فقط کالاهای ویدیویی در سبد خرید هستند =>
فقط کالاهای ویدیویی در سبد خرید هستند

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

ممنون میشم کمکم کنید که این مشکل رو برطرف کنم.


ثبت پرسش جدید

به همدیگه کمک کنیم

به پویا واقفی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام