FleetCart/Modules/Shipping/Providers/ShippingServiceProvider.php
2023-12-03 14:07:47 +00:00

63 lines
1.5 KiB
PHP

<?php
namespace Modules\Shipping\Providers;
use Modules\Shipping\Method;
use Illuminate\Support\ServiceProvider;
use Modules\Shipping\Facades\ShippingMethod;
class ShippingServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot(): void
{
if (!config('app.installed')) {
return;
}
$this->registerFreeShipping();
$this->registerLocalPickup();
$this->registerFlatRate();
}
private function registerFreeShipping()
{
if (!setting('free_shipping_enabled')) {
return;
}
ShippingMethod::register('free_shipping', function () {
return new Method('free_shipping', setting('free_shipping_label'), 0);
});
}
private function registerLocalPickup()
{
if (!setting('local_pickup_enabled')) {
return;
}
ShippingMethod::register('local_pickup', function () {
return new Method('local_pickup', setting('local_pickup_label'), setting('local_pickup_cost'));
});
}
private function registerFlatRate()
{
if (!setting('flat_rate_enabled')) {
return;
}
ShippingMethod::register('flat_rate', function () {
return new Method('flat_rate', setting('flat_rate_label'), setting('flat_rate_cost'));
});
}
}