first upload all files
This commit is contained in:
29
Modules/Coupon/Checkers/ApplicableProducts.php
Normal file
29
Modules/Coupon/Checkers/ApplicableProducts.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Coupon\Checkers;
|
||||
|
||||
use Closure;
|
||||
use Modules\Cart\Facades\Cart;
|
||||
use Modules\Coupon\Exceptions\InapplicableCouponException;
|
||||
|
||||
class ApplicableProducts
|
||||
{
|
||||
public function handle($coupon, Closure $next)
|
||||
{
|
||||
$coupon->load('products');
|
||||
|
||||
if ($coupon->products->isEmpty()) {
|
||||
return $next($coupon);
|
||||
}
|
||||
|
||||
$cartItems = Cart::items()->filter(function ($cartItem) use ($coupon) {
|
||||
return $coupon->products->contains($cartItem->product);
|
||||
});
|
||||
|
||||
if ($cartItems->isEmpty()) {
|
||||
throw new InapplicableCouponException;
|
||||
}
|
||||
|
||||
return $next($coupon);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user