fix: display only delivery types that have a price and auto-select first

This commit is contained in:
Valentin Lab
2025-10-05 10:08:02 +02:00
parent 62bce92d6d
commit cc8dfa29b4
2 changed files with 29 additions and 3 deletions

View File

@@ -7,7 +7,18 @@
</th>
</tr>
</thead>
@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)
<tr>
<td>
@include('components.form.radios.icheck', [
@@ -15,6 +26,7 @@
'val' => $delivery_type_id,
'id' => 'delivery_type_' . $delivery_type_id,
'class' => 'delivery_type',
'value' => $preselectedDeliveryTypeId,
])
</td>
<td>
@@ -31,11 +43,19 @@
@push('js')
<script>
function handleDeliveryTypes() {
$('input.delivery_type').change(function() {
var $deliveryTypeInputs = $('input.delivery_type');
$deliveryTypeInputs.change(function() {
var deliveryTypeId = $(this).val();
var deliveryId = $('input[name=delivery_id]:checked').val()
refreshBasketTotal(deliveryId, deliveryTypeId);
});
var $preselected = $deliveryTypeInputs.filter(':checked').first();
if ($preselected.length) {
$preselected.trigger('change');
}
}
handleDeliveryTypes();
</script>