⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.63
Server IP:
217.76.53.76
Server:
Linux vmi1397931.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
Server Software:
Apache
PHP Version:
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
wwwroot
/
gsm.com.ng
/
app
/
Http
/
Controllers
/
User
/
View File Name :
StoreController.php
where('status', 1)->orderBy('id', 'asc')->get(); $settings = Setting::where('status', 1)->first(); $stores = BusinessCard::where('user_id', Auth::user()->user_id)->where('card_type', 'store')->where('card_status', 'activated')->count(); // Get plan details $plan = DB::table('users')->where('user_id', Auth::user()->user_id)->where('status', 1)->first(); $currencies = Currency::get(); $plan_details = json_decode($plan->plan_details); // Get number of stores if ($plan_details->no_of_stores == 999) { $no_of_stores = 999999; } else { $no_of_stores = $plan_details->no_of_stores; } // Check number of stores if ($stores < $no_of_stores) { return view('user.store.create-store', compact('themes', 'settings', 'plan_details', 'currencies')); } else { alert()->error(trans('The maximum limit has been exceeded. Please upgrade your plan.')); return redirect()->route('user.stores'); } } // Save Store public function saveStore(Request $request) { // Validate $validator = Validator::make($request->all(), [ 'theme_id' => 'required', 'card_lang' => 'required', 'banner.*' => 'required|max:' . env("SIZE_LIMIT") . '', 'logo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:' . env("SIZE_LIMIT") . '', 'title' => 'required', 'currency' => 'required', 'subtitle' => 'required', 'whatsapp_no' => 'required', 'whatsapp_msg' => 'required', ]); // Validate alert message if ($validator->fails()) { alert()->error(trans($validator->messages()->all()[0])); return back()->with('toast_error', $validator->messages()->all()[0])->withInput(); } // Unique card ID (personalized_link) $cardId = uniqid(); if ($request->link) { $personalized_link = $request->link; } else { $personalized_link = $cardId; } // Queries $cards = BusinessCard::where('user_id', Auth::user()->user_id)->where('card_type', 'store')->where('card_status', 'activated')->count(); $user_details = User::where('user_id', Auth::user()->user_id)->first(); $plan_details = json_decode($user_details->plan_details, true); // Upload image $logo = ""; $banner = []; // Upload store logo if ($request->logo->extension() == "jpeg" || $request->logo->extension() == "png" || $request->logo->extension() == "jpg" || $request->logo->extension() == "gif" || $request->logo->extension() == "svg") { $logo = '/backend/img/vCards/' . 'IMG-' . uniqid() . '-' . str_replace(' ', '-', $request->logo->getClientOriginalName()); $request->logo->move(public_path('backend/img/vCards'), $logo); } // Upload store banner for ($i = 0; $i < count($request->banner); $i++) { if ($request->banner[$i]->extension() == "jpeg" || $request->banner[$i]->extension() == "png" || $request->banner[$i]->extension() == "jpg" || $request->banner[$i]->extension() == "gif" || $request->banner[$i]->extension() == "svg") { $banner[$i] = '/backend/img/vCards/' . 'IMG-' . uniqid() . '-' . str_replace(' ', '-', $request->banner[$i]->getClientOriginalName()); $request->banner[$i]->move(public_path('backend/img/vCards'), $banner[$i]); } } // Store details $store_details = []; $store_details['whatsapp_no'] = $request->whatsapp_no; $store_details['whatsapp_msg'] = $request->whatsapp_msg; $store_details['currency'] = $request->currency; // Unique Store URL $card_url = strtolower(preg_replace('/\s+/', '-', $personalized_link)); // Get current store count $current_card = BusinessCard::where('card_url', $card_url)->count(); // Get store count if ($plan_details['no_of_stores'] == 999) { $no_of_stores = 999999; } else { $no_of_stores = $plan_details['no_of_stores']; } // Check persionalize link if ($current_card == 0) { // Checking, If the user plan allowed card creation is less than created card. if ($cards < $no_of_stores) { try { // Card ID $card_id = $cardId; // Save $card = new BusinessCard(); $card->card_id = $card_id; $card->user_id = Auth::user()->user_id; $card->theme_id = $request->theme_id; $card->card_lang = $request->card_lang; $card->cover = json_encode($banner); $card->profile = $logo; $card->card_url = strtolower(preg_replace('/\s+/', '-', $personalized_link)); $card->card_type = 'store'; $card->title = $request->title; $card->sub_title = $request->subtitle; $card->description = json_encode($store_details); $card->save(); alert()->success(trans('New WhatsApp Store Created Successfully!')); return redirect()->route('user.products', $card_id); } catch (\Exception $th) { // Alert (Personalized link was already registered) alert()->error(trans('Sorry, the personalized link was already registered.')); return redirect()->route('user.create.store'); } } else { // Alert (Maximum store creation limit is exceeded,) alert()->error(trans('Maximum store creation limit is exceeded, Please upgrade your plan to add more store(s).')); return redirect()->route('user.create.store'); } } else { // Alert (Personalized link was already registered) alert()->error(trans('Sorry, the personalized link was already registered.')); return redirect()->route('user.create.store'); } } // Products public function products() { // Get plan details $plan = DB::table('users')->where('user_id', Auth::user()->user_id)->where('status', 1)->first(); $plan_details = json_decode($plan->plan_details); // Queries $categories = Category::where('user_id', Auth::user()->user_id)->where('status', 1)->get(); $media = Medias::where('user_id', Auth::user()->user_id)->orderBy('id', 'desc')->get(); $settings = Setting::where('status', 1)->first(); return view('user.store.products', compact('plan_details', 'media', 'settings', 'categories')); } // Save Products public function saveProducts(Request $request, $id) { // Queries $business_card = BusinessCard::where('card_id', $id)->first(); // Check business card if ($business_card == null) { return view('errors.404'); } else { // Get plan details $plan = DB::table('users')->where('user_id', Auth::user()->user_id)->where('status', 1)->first(); $plan_details = json_decode($plan->plan_details); // Check product image if ($request->badge != null) { // Check products limit if (count($request->badge) <= $plan_details->no_of_store_products) { // Delete previous products StoreProduct::where('card_id', $id)->delete(); // Check dynamic fields for ($i = 0; $i < count($request->badge); $i++) { // Save $service = new StoreProduct(); $service->card_id = $id; $service->product_id = uniqid(); $service->category_id = $request->categories[$i]; $service->badge = $request->badge[$i]; $service->product_image = $request->product_image[$i]; $service->product_name = $request->product_name[$i]; $service->product_subtitle = $request->product_subtitle[$i]; $service->regular_price = $request->regular_price[$i]; $service->sales_price = $request->sales_price[$i]; $service->product_status = $request->product_status[$i]; $service->save(); } alert()->success(trans('Your WhatsApp store link is ready!')); return redirect()->route('user.stores'); } else { alert()->error(trans('You have reached the plan limit!')); return redirect()->route('user.products', $id); } } else { alert()->error(trans('You must add atleast one product.')); return redirect()->route('user.products', $id); } } } // Edit Store public function editStore(Request $request, $id) { // Queries $themes = Theme::where('theme_description', 'WhatsApp Store')->where('status', 1)->orderBy('id', 'asc')->get(); $business_card = BusinessCard::where('card_id', $id)->first(); // Check business card if ($business_card == null) { return view('errors.404'); } else { // Check card type is "STORE" if ($business_card->card_type == "store") { // Queries $settings = Setting::where('status', 1)->first(); $currencies = Currency::get(); $plan_details = Plan::where('plan_id', Auth::user()->plan_id)->first(); $store_details = json_decode($business_card->description); return view('user.edit-store.edit-store', compact('themes', 'business_card', 'settings', 'plan_details', 'store_details', 'currencies')); } else { return redirect()->route('user.edit.card', $id); } } } // Update store public function updateStore(Request $request, $id) { // Queries $business_card = BusinessCard::where('card_id', $id)->first(); // Check business card if ($business_card == null) { return view('errors.404'); } else { // Check personalize links if ($request->link) { $personalized_link = $request->link; } else { $personalized_link = $id; } // Not upload store banner and logo if ($request->banner == null && $request->logo == null) { // Generate json for store details $store_details = []; $store_details['whatsapp_no'] = $request->whatsapp_no; $store_details['whatsapp_msg'] = $request->whatsapp_msg; $store_details['currency'] = $request->currency; // Update BusinessCard::where('card_id', $id)->update([ 'theme_id' => $request->theme_id, 'card_lang' => $request->card_lang, 'card_url' => $personalized_link, 'title' => $request->title, 'sub_title' => $request->subtitle, 'description' => $store_details, ]); alert()->success(trans('Store details updated')); return redirect()->route('user.edit.products', $id); } else if ($request->logo == null) { // Validate $validator = Validator::make($request->all(), [ 'banner.*' => 'required|mimes:jpeg,png,jpg,gif,svg|max:' . env("SIZE_LIMIT") . '', ]); // Validate alert if ($validator->fails()) { alert()->error(trans('Please fill out all required fields and upload the proper size of the image.')); return back()->with('toast_error', $validator->messages()->all()[0])->withInput(); } // Generate json for store details $store_details = []; $store_details['whatsapp_no'] = $request->whatsapp_no; $store_details['whatsapp_msg'] = $request->whatsapp_msg; $store_details['currency'] = $request->currency; // Update banner images $banner = []; for ($i = 0; $i < count($request->banner); $i++) { if ($request->banner[$i]->extension() == "jpeg" || $request->banner[$i]->extension() == "png" || $request->banner[$i]->extension() == "jpg" || $request->banner[$i]->extension() == "gif" || $request->banner[$i]->extension() == "svg") { $banner[$i] = '/backend/img/vCards/' . 'IMG-' . $request->banner[$i]->getClientOriginalName(); $request->banner[$i]->move(public_path('backend/img/vCards'), $banner[$i]); } // Update BusinessCard::where('card_id', $id)->update([ 'cover' => json_encode($banner), 'theme_id' => $request->theme_id, 'card_lang' => $request->card_lang, 'card_url' => $personalized_link, 'title' => $request->title, 'sub_title' => $request->subtitle, 'description' => $store_details, ]); } alert()->success(trans('Store details updated')); return redirect()->route('user.edit.products', $id); } else if ($request->banner == null) { // Validate $validator = Validator::make($request->all(), [ 'logo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:' . env("SIZE_LIMIT") . '', ]); // Validate alert if ($validator->fails()) { alert()->error(trans('Please fill out all required fields and upload the proper size of the image.')); return back()->with('toast_error', $validator->messages()->all()[0])->withInput(); } // Generate json for store details $store_details = []; $store_details['whatsapp_no'] = $request->whatsapp_no; $store_details['whatsapp_msg'] = $request->whatsapp_msg; $store_details['currency'] = $request->currency; // Upload store logo image $logo = ""; if ($request->logo->extension() == "jpeg" || $request->logo->extension() == "png" || $request->logo->extension() == "jpg" || $request->logo->extension() == "gif" || $request->logo->extension() == "svg") { $logo = '/backend/img/vCards/' . 'IMG-' . uniqid() . '-' . str_replace(' ', '-', $request->logo->getClientOriginalName()); $request->logo->move(public_path('backend/img/vCards'), $logo); // Update BusinessCard::where('card_id', $id)->update([ 'profile' => $logo, 'theme_id' => $request->theme_id, 'card_lang' => $request->card_lang, 'card_url' => $personalized_link, 'title' => $request->title, 'sub_title' => $request->subtitle, 'description' => $store_details, ]); } alert()->success(trans('Store details updated')); return redirect()->route('user.edit.products', $id); } else if ($request->banner != null && $request->logo != null) { // Validate $validator = Validator::make($request->all(), [ 'banner.*' => 'required|mimes:jpeg,png,jpg,gif,svg|max:' . env("SIZE_LIMIT") . '', 'logo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:' . env("SIZE_LIMIT") . '', ]); // Validate alert if ($validator->fails()) { alert()->error(trans('Please fill out all required fields and upload the proper size of the image.')); return back()->with('toast_error', $validator->messages()->all()[0])->withInput(); } // Generate json for store details $store_details = []; $store_details['whatsapp_no'] = $request->whatsapp_no; $store_details['whatsapp_msg'] = $request->whatsapp_msg; $store_details['currency'] = $request->currency; // Upload logo image $logo = ""; if ($request->logo->extension() == "jpeg" || $request->logo->extension() == "png" || $request->logo->extension() == "jpg" || $request->logo->extension() == "gif" || $request->logo->extension() == "svg") { $logo = '/backend/img/vCards/' . 'IMG-' . uniqid() . '-' . str_replace(' ', '-', $request->logo->getClientOriginalName()); $request->logo->move(public_path('backend/img/vCards'), $logo); // Update BusinessCard::where('card_id', $id)->update([ 'profile' => $logo, 'theme_id' => $request->theme_id, 'card_lang' => $request->card_lang, 'card_url' => $personalized_link, 'title' => $request->title, 'sub_title' => $request->subtitle, 'description' => $store_details, ]); } // Update banner images $banner = []; for ($i = 0; $i < count($request->banner); $i++) { if ($request->banner[$i]->extension() == "jpeg" || $request->banner[$i]->extension() == "png" || $request->banner[$i]->extension() == "jpg" || $request->banner[$i]->extension() == "gif" || $request->banner[$i]->extension() == "svg") { $banner[$i] = '/backend/img/vCards/' . 'IMG-' . uniqid() . '-' . str_replace(' ', '-', $request->banner[$i]->getClientOriginalName()); $request->banner[$i]->move(public_path('backend/img/vCards'), $banner[$i]); } // Update BusinessCard::where('card_id', $id)->update([ 'cover' => json_encode($banner), 'theme_id' => $request->theme_id, 'card_lang' => $request->card_lang, 'card_url' => $personalized_link, 'title' => $request->title, 'sub_title' => $request->subtitle, 'description' => $store_details, ]); } // Update BusinessCard::where('card_id', $id)->update([ 'theme_id' => $request->theme_id, 'card_lang' => $request->card_lang, 'card_url' => $personalized_link, 'title' => $request->title, 'sub_title' => $request->subtitle, 'description' => $store_details, ]); alert()->success(trans('Store details updated')); return redirect()->route('user.edit.products', $id); } } } // Products public function editProducts(Request $request, $id) { // Get plan details $plan = DB::table('users')->where('user_id', Auth::user()->user_id)->where('status', 1)->first(); $plan_details = json_decode($plan->plan_details); // Queries $business_card = BusinessCard::where('card_id', $id)->first(); // Check business card if ($business_card == null) { return view('errors.404'); } else { // Queries $products = StoreProduct::where('card_id', $id)->get(); $categories = Category::where('user_id', Auth::user()->user_id)->where('status', 1)->get(); $media = Medias::where('user_id', Auth::user()->user_id)->orderBy('id', 'desc')->get(); $settings = Setting::where('status', 1)->first(); return view('user.edit-store.edit-products', compact('plan_details', 'products', 'categories', 'media', 'settings')); } } // Update products public function updateProducts(Request $request, $id) { // Queries $business_card = BusinessCard::where('card_id', $id)->first(); // Check business card if ($business_card == null) { return view('errors.404'); } else { // Get plan details $plan = DB::table('users')->where('user_id', Auth::user()->user_id)->where('status', 1)->first(); $plan_details = json_decode($plan->plan_details); // Check input value is empty if (isset($request->categories) && isset($request->badge) && isset($request->product_image) && isset($request->product_name) && isset($request->product_subtitle) && isset($request->regular_price) && isset($request->sales_price) && isset($request->product_status)) { // Check products count if (count($request->badge) <= $plan_details->no_of_store_products) { // Delete previous products StoreProduct::where('card_id', $id)->delete(); // Check dynamic fields for ($i = 0; $i < count($request->badge); $i++) { // Save $product = new StoreProduct(); $product->card_id = $id; $product->product_id = uniqid(); $product->category_id = $request->categories[$i]; $product->badge = $request->badge[$i]; $product->product_image = $request->product_image[$i]; $product->product_name = $request->product_name[$i]; $product->product_subtitle = $request->product_subtitle[$i]; $product->regular_price = $request->regular_price[$i]; $product->sales_price = $request->sales_price[$i]; $product->product_status = $request->product_status[$i]; $product->save(); } // Check active counts $activeCards = BusinessCard::where('user_id', Auth::user()->user_id)->where('card_status', 'activated')->count(); // Check count of stores if ($activeCards <= $plan_details->no_of_stores) { // Update BusinessCard::where('user_id', Auth::user()->user_id)->where('card_id', $id)->update([ 'card_status' => 'activated', ]); alert()->success(trans('Product details are updated.')); return redirect()->route('user.stores'); } alert()->success(trans('Product details are updated.')); return redirect()->route('user.stores'); } else { alert()->error(trans('You have reached the plan limit!')); return redirect()->route('user.edit.products', $id); } } else { // Check active counts $activeCards = BusinessCard::where('user_id', Auth::user()->user_id)->where('card_status', 'activated')->count(); // Get plan details $plan = DB::table('users')->where('user_id', Auth::user()->user_id)->where('status', 1)->first(); $plan_details = json_decode($plan->plan_details); // Check count of stores if ($activeCards <= $plan_details->no_of_stores) { // Update BusinessCard::where('user_id', Auth::user()->user_id)->where('card_id', $id)->update([ 'card_status' => 'activated', ]); alert()->success(trans('Product details are updated.')); return redirect()->route('user.stores'); } alert()->error(trans('You have reached the plan limit!')); return redirect()->route('user.edit.products', $id); } } } // Delete store public function deleteStore(Request $request) { // Delete BusinessCard::where('user_id', Auth::user()->user_id)->where('card_id', $request->query('id'))->update([ 'card_status' => 'deleted', ]); alert()->success(trans('Removed!')); return redirect()->route('user.stores'); } }