From e080d98e81c6e7ae588b41f68ffc63ad300c96ab Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Sun, 5 Oct 2025 10:08:02 +0200 Subject: [PATCH] fix: display only delivery types that have a price and auto-select first --- app/Repositories/Shop/DeliveryTypes.php | 8 ++++++- .../Shop/Orders/partials/shipping.blade.php | 24 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/app/Repositories/Shop/DeliveryTypes.php b/app/Repositories/Shop/DeliveryTypes.php index e2fad483..7dbfe7d4 100644 --- a/app/Repositories/Shop/DeliveryTypes.php +++ b/app/Repositories/Shop/DeliveryTypes.php @@ -15,9 +15,15 @@ class DeliveryTypes $types = self::getAll(); foreach ($types as $type) { + $price = self::getPrice($type->id, $weight); + + if ($price === false) { + continue; + } + $data[$type->id] = [ 'name' => $type->name, - 'price' => self::getPrice($type->id, $weight), + 'price' => $price, ]; } diff --git a/resources/views/Shop/Orders/partials/shipping.blade.php b/resources/views/Shop/Orders/partials/shipping.blade.php index fbf76122..36d7c006 100644 --- a/resources/views/Shop/Orders/partials/shipping.blade.php +++ b/resources/views/Shop/Orders/partials/shipping.blade.php @@ -7,7 +7,18 @@ - @foreach ($delivery_types as $delivery_type_id => $delivery_type) + @php + $deliveryTypes = collect($delivery_types); + $preselectedDeliveryTypeId = old('delivery_type_id'); + + if ($preselectedDeliveryTypeId === null || $preselectedDeliveryTypeId === '') { + $preselectedDeliveryTypeId = $deliveryTypes->keys()->first(); + } + + $deliveryTypes = $deliveryTypes->all(); + @endphp + + @foreach ($deliveryTypes as $delivery_type_id => $delivery_type) @include('components.form.radios.icheck', [ @@ -15,6 +26,7 @@ 'val' => $delivery_type_id, 'id' => 'delivery_type_' . $delivery_type_id, 'class' => 'delivery_type', + 'value' => $preselectedDeliveryTypeId, ]) @@ -31,11 +43,19 @@ @push('js')