Extend and replace core middleware in Unleash Commerce Core
namespace App\Http\Middleware; use Closure; use Esign\UnleashCommerce\Core\Contracts\Http\Middleware\EnsureUserHasCustomerMiddleware as EnsureUserHasCustomerMiddlewareContract; use Esign\UnleashCommerce\Core\Http\Middleware\EnsureUserHasCustomerMiddleware as BaseEnsureUserHasCustomerMiddleware; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class EnsureUserHasCustomerMiddleware extends BaseEnsureUserHasCustomerMiddleware implements EnsureUserHasCustomerMiddlewareContract { public function handle(Request $request, Closure $next): Response { if ($request->user()?->is_suspended) { abort(Response::HTTP_FORBIDDEN); } return parent::handle($request, $next); } }
<?php namespace App\Providers; use App\Http\Middleware\EnsureUserHasCustomerMiddleware; use Esign\UnleashCommerce\Core\Contracts\Http\Middleware\EnsureUserHasCustomerMiddleware as EnsureUserHasCustomerMiddlewareContract; use Illuminate\Support\ServiceProvider; class UnleashCommerceServiceProvider extends ServiceProvider { public function register(): void { $this->registerMiddleware(); } protected function registerMiddleware(): void { $this->app->bind( EnsureUserHasCustomerMiddlewareContract::class, EnsureUserHasCustomerMiddleware::class ); } }