Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/app/Http/Controllers/Shop/ |
<?php
namespace App\Http\Controllers\Shop;
use App\Models\Product;
use App\Models\Wishlist;
use Illuminate\Http\Request;
class WishlistController extends Controller
{
protected $product = null;
public function __construct(Product $product)
{
$this->product = $product;
}
public function wishlist(Request $request)
{
// dd($request->all());
if (empty($request->slug)) {
request()->session()->flash('error', 'Invalid Products');
return back();
}
$product = Product::where('slug', $request->slug)->first();
// return $product;
if (empty($product)) {
request()->session()->flash('error', 'Invalid Products');
return back();
}
$already_wishlist = Wishlist::where('user_id', auth()->id())->where('cart_id', null)->where('product_id', $product->id)->first();
// return $already_wishlist;
if ($already_wishlist) {
request()->session()->flash('error', 'You already placed in wishlist');
return back();
} else {
$wishlist = new Wishlist();
$wishlist->user_id = auth()->id();
$wishlist->product_id = $product->id;
$wishlist->price = ($product->price - ($product->price * $product->discount) / 100);
$wishlist->quantity = 1;
$wishlist->amount = $wishlist->price * $wishlist->quantity;
if ($wishlist->product->stock < $wishlist->quantity || $wishlist->product->stock <= 0) {
return back()->with('error', 'Stock not sufficient!.');
}
$wishlist->save();
}
request()->session()->flash('success', 'Product successfully added to wishlist');
return back();
}
public function wishlistDelete(Request $request)
{
$wishlist = Wishlist::find($request->id);
if ($wishlist) {
$wishlist->delete();
request()->session()->flash('success', 'Wishlist successfully removed');
return back();
}
request()->session()->flash('error', 'Error please try again');
return back();
}
public function index()
{
return view('frontend.pages.wishlist');
}
}