From 9c1f3dfed2a79729d7d7e740cef51fc244d29d8a Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Mon, 9 Feb 2026 06:47:18 +0100 Subject: [PATCH] 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 --- app/Http/Controllers/Shop/OrderController.php | 15 ++++++-- app/Repositories/Shop/Contents.php | 10 ++++++ ..._shop_contents_check_wire_confirmation.php | 36 +++++++++++++++++++ .../views/Shop/Orders/confirmed.blade.php | 16 +++++++-- 4 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 database/migrations/shop/2026_02_09_050000_insert_shop_contents_check_wire_confirmation.php diff --git a/app/Http/Controllers/Shop/OrderController.php b/app/Http/Controllers/Shop/OrderController.php index 3d007de5..b4a38d4a 100644 --- a/app/Http/Controllers/Shop/OrderController.php +++ b/app/Http/Controllers/Shop/OrderController.php @@ -88,7 +88,9 @@ class OrderController extends Controller } 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'); @@ -97,9 +99,18 @@ class OrderController extends Controller public function confirmed() { ShopCart::clear(); + $paymentType = request('payment_type'); $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) diff --git a/app/Repositories/Shop/Contents.php b/app/Repositories/Shop/Contents.php index 69c6a09b..269d3a5f 100644 --- a/app/Repositories/Shop/Contents.php +++ b/app/Repositories/Shop/Contents.php @@ -41,6 +41,16 @@ class Contents 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() { return self::get(6)->text ?? 'Merci pour votre règlement. Votre commande sera traitée sous peu.'; diff --git a/database/migrations/shop/2026_02_09_050000_insert_shop_contents_check_wire_confirmation.php b/database/migrations/shop/2026_02_09_050000_insert_shop_contents_check_wire_confirmation.php new file mode 100644 index 00000000..110c1153 --- /dev/null +++ b/database/migrations/shop/2026_02_09_050000_insert_shop_contents_check_wire_confirmation.php @@ -0,0 +1,36 @@ +insert([ + [ + 'id' => 10, + 'text' => '

Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre chèque.

Sans réception de votre paiement au bout de 30 jours, votre commande sera annulée.

', + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'id' => 11, + 'text' => '

Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre virement.

Sans réception de votre paiement au bout de 30 jours, votre commande sera annulée.

', + 'created_at' => now(), + 'updated_at' => now(), + ], + ]); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + DB::table('shop_contents')->whereIn('id', [10, 11])->delete(); + } +}; diff --git a/resources/views/Shop/Orders/confirmed.blade.php b/resources/views/Shop/Orders/confirmed.blade.php index 68a97a1f..da83b6cd 100644 --- a/resources/views/Shop/Orders/confirmed.blade.php +++ b/resources/views/Shop/Orders/confirmed.blade.php @@ -4,8 +4,20 @@ @section('content')
-
- {!! $content !!} +
+ +
+ {!! $content !!} +
+ @if($payment_label ?? false) +
+ Votre commande a bien été enregistrée, elle vous sera expédiée dès réception de votre {{ $payment_label }}. +
+
+ + Sans réception de votre paiement au bout de 30 jours, votre commande sera annulée. +
+ @endif
@endsection