سلام دوستان، من دارم روی یک پروژه ی فروشگاه اینترنتی کار میکنم که دارای دو نوع محصول ویدیویی و فیزیکی هستند. منظور از محصولات فیزیکی یعنی محصولاتی که به ادرس شخص ارسال میشوند در حالیکه ویدیویی ها فقط بایستی "دانلود" شوند.
حالا من باید یک 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 گرفتم و نتایج هرکدوم رو اینجا گذاشتم:
فقط کالاهای فیزیکی در سبد خرید هستند =>
فقط کالاهای فیزیکی در سبد خرید هستند =>
فقط کالاهای ویدیویی در سبد خرید هستند =>
الان فقط حالتی که فقط کالاهای فیزیکی در سبد خرید فرد باشند کار نمیکنه و بقیه حالت ها درسته.
ممنون میشم کمکم کنید که این مشکل رو برطرف کنم.
به پویا واقفی کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟