fix: display only delivery types that have a price and auto-select first
This commit is contained in:
@@ -15,9 +15,15 @@ class DeliveryTypes
|
|||||||
$types = self::getAll();
|
$types = self::getAll();
|
||||||
|
|
||||||
foreach ($types as $type) {
|
foreach ($types as $type) {
|
||||||
|
$price = self::getPrice($type->id, $weight);
|
||||||
|
|
||||||
|
if ($price === false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$data[$type->id] = [
|
$data[$type->id] = [
|
||||||
'name' => $type->name,
|
'name' => $type->name,
|
||||||
'price' => self::getPrice($type->id, $weight),
|
'price' => $price,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,18 @@
|
|||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</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>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
@include('components.form.radios.icheck', [
|
@include('components.form.radios.icheck', [
|
||||||
@@ -15,6 +26,7 @@
|
|||||||
'val' => $delivery_type_id,
|
'val' => $delivery_type_id,
|
||||||
'id' => 'delivery_type_' . $delivery_type_id,
|
'id' => 'delivery_type_' . $delivery_type_id,
|
||||||
'class' => 'delivery_type',
|
'class' => 'delivery_type',
|
||||||
|
'value' => $preselectedDeliveryTypeId,
|
||||||
])
|
])
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -31,11 +43,19 @@
|
|||||||
@push('js')
|
@push('js')
|
||||||
<script>
|
<script>
|
||||||
function handleDeliveryTypes() {
|
function handleDeliveryTypes() {
|
||||||
$('input.delivery_type').change(function() {
|
var $deliveryTypeInputs = $('input.delivery_type');
|
||||||
|
|
||||||
|
$deliveryTypeInputs.change(function() {
|
||||||
var deliveryTypeId = $(this).val();
|
var deliveryTypeId = $(this).val();
|
||||||
var deliveryId = $('input[name=delivery_id]:checked').val()
|
var deliveryId = $('input[name=delivery_id]:checked').val()
|
||||||
refreshBasketTotal(deliveryId, deliveryTypeId);
|
refreshBasketTotal(deliveryId, deliveryTypeId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var $preselected = $deliveryTypeInputs.filter(':checked').first();
|
||||||
|
|
||||||
|
if ($preselected.length) {
|
||||||
|
$preselected.trigger('change');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
handleDeliveryTypes();
|
handleDeliveryTypes();
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user