File: /home/armgroup/libs/app/Http/Livewire/Frontend/Cart/Index.php
<?php
namespace App\Http\Livewire\Frontend\Cart;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\Product;
use Gloudemans\Shoppingcart\Facades\Cart;
use Livewire\Component;
class Index extends Component
{
use ConvertEmptyStringsToNull, General;
public $rowId;
public $qty;
public $price;
public $withoutSpecial;
public function render()
{
return view('livewire.frontend.cart.index');
}
public function remove()
{
Cart::remove($this->rowId);
$this->doneMessage('با موفقیت حذف شد');
return redirect()->route(Cart::count() ? 'cart.index' : 'search.index');
}
public function increment()
{
$cart = Cart::get($this->rowId);
if (! $cart) {
return redirect()->route('search.index');
}
$cartBuyStatus = Product::find($cart->id)->canBuy($this->qty + 1, $cart->options, $this->price);
if ($cartBuyStatus === 'OK') {
$this->qty++;
$this->updateCartQuantity();
} else {
$this->ajaxDoneMessage($cartBuyStatus, 'error');
}
}
public function decrement()
{
if ($this->qty == 1) {
$this->ajaxDoneMessage('تعداد محصول نمیتواند کمتر از یک باشد!', 'error');
return;
}
$this->qty--;
$this->updateCartQuantity();
}
private function updateCartQuantity()
{
Cart::update($this->rowId, $this->qty);
$this->emit('updateTotalCartPrice', Cart::subtotal(0), Cart::count());
$this->emit('cartChanged');
$this->ajaxDoneMessage('سبد خرید با موفقیت بروزرسانی شد');
}
}