new: show payment-specific confirmation for check/wire orders

Display a tailored confirmation message when the customer pays by
check or wire transfer, including a warning about the 30-day
cancellation policy. The payment type is passed as a query parameter
so the message survives page reloads.

- Add ``getOrderConfirmedByCheckContent()`` and
  ``getOrderConfirmedByWireContent()`` to ``Contents`` repository
- Flash ``payment_type`` through redirect query parameter
- Add migration inserting content rows (id 10, 11)
- Update confirmed view with green checkmark and warning icon
This commit is contained in:
Valentin Lab
2026-02-09 06:47:18 +01:00
parent e774113110
commit 9c1f3dfed2
4 changed files with 73 additions and 4 deletions

View File

@@ -88,7 +88,9 @@ class OrderController extends Controller
} }
OrderMails::sendOrderConfirmed($order->id); OrderMails::sendOrderConfirmed($order->id);
return redirect()->route('Shop.Orders.confirmed'); return redirect()->route('Shop.Orders.confirmed', [
'payment_type' => $data['payment_type'],
]);
} }
return view('Shop.Orders.order'); return view('Shop.Orders.order');
@@ -97,9 +99,18 @@ class OrderController extends Controller
public function confirmed() public function confirmed()
{ {
ShopCart::clear(); ShopCart::clear();
$paymentType = request('payment_type');
$content = Contents::getOrderConfirmedContent(); $content = Contents::getOrderConfirmedContent();
$paymentLabel = match ($paymentType) {
'2' => 'chèque',
'3' => 'virement',
default => null,
};
return view('Shop.Orders.confirmed', ['content' => $content]); return view('Shop.Orders.confirmed', [
'content' => $content,
'payment_label' => $paymentLabel,
]);
} }
public function getPdf($uuid) public function getPdf($uuid)

View File

@@ -41,6 +41,16 @@ class Contents
return self::get(5)->text ?? 'Votre commande a été confirmée'; return self::get(5)->text ?? 'Votre commande a été confirmée';
} }
public static function getOrderConfirmedByCheckContent()
{
return self::get(10)->text ?? 'Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre chèque.';
}
public static function getOrderConfirmedByWireContent()
{
return self::get(11)->text ?? 'Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre virement.';
}
public static function getPayboxConfirmedContent() public static function getPayboxConfirmedContent()
{ {
return self::get(6)->text ?? 'Merci pour votre règlement. Votre commande sera traitée sous peu.'; return self::get(6)->text ?? 'Merci pour votre règlement. Votre commande sera traitée sous peu.';

View File

@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
DB::table('shop_contents')->insert([
[
'id' => 10,
'text' => '<p>Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre chèque.</p><p class="mt-3 text-warning"><i class="fa fa-exclamation-triangle mr-1"></i> Sans réception de votre paiement au bout de 30 jours, votre commande sera annulée.</p>',
'created_at' => now(),
'updated_at' => now(),
],
[
'id' => 11,
'text' => '<p>Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre virement.</p><p class="mt-3 text-warning"><i class="fa fa-exclamation-triangle mr-1"></i> Sans réception de votre paiement au bout de 30 jours, votre commande sera annulée.</p>',
'created_at' => now(),
'updated_at' => now(),
],
]);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
DB::table('shop_contents')->whereIn('id', [10, 11])->delete();
}
};

View File

@@ -4,8 +4,20 @@
@section('content') @section('content')
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12 text-center py-5">
<i class="fa fa-check-circle text-success" style="font-size: 5rem;"></i>
<div class="mt-4" style="font-size: 1.2rem;">
{!! $content !!} {!! $content !!}
</div> </div>
@if($payment_label ?? false)
<div class="mt-3" style="font-size: 1.1rem;">
Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre {{ $payment_label }}.
</div>
<div class="mt-3" style="font-size: 1.1rem;">
<i class="fa fa-exclamation-triangle text-warning mr-1"></i>
Sans réception de votre paiement au bout de 30 jours, votre commande sera annulée.
</div>
@endif
</div>
</div> </div>
@endsection @endsection