feat(warenkorb): ein Formular fuer Mengen, Anmerkung und Weiterleitung; Anmerkung in der Kasse editierbar

Vorher: Anmerkung in eigenem Formular mit 'Text speichern', 'Zur Kasse' als reiner Link
(ungespeicherte Mengen/Anmerkung gingen verloren), in der Kasse readonly mit dem Hinweis
'kann nur im Warenkorb bearbeitet werden' -- ohne technischen Grund, die Kasse postete das
Feld ohnehin mit. Jetzt: cart_goto ('kasse' | 'express:<modul>') im Warenkorb-Modul,
Kasse uebernimmt POST customer_info in die Session, Texte auf Deutsch geglaettet.
This commit is contained in:
Thomas Bartelt
2026-09-18 19:38:02 +02:00
parent dec101f0cb
commit dc57c725f6
4 changed files with 257 additions and 282 deletions
+5 -1
View File
@@ -345,7 +345,11 @@ class website_cashdesk {
$this->manage_errors();
$this->manage_data_persistence();
// customer info
// customer info -- 18.09.2026: in der Kasse editierbar, ein POST (auch bei
// Fehlern im Formular) aktualisiert die Session, die Bestellung nimmt $_POST (s.u.)
if (isset($_POST['customer_info'])) {
$_SESSION['customer_info'] = trim((string)$_POST['customer_info']);
}
if (isset($_SESSION['customer_info']) && $_SESSION['customer_info']) {
$this->layout_object->assign('customer_info', $_SESSION['customer_info']);
}
+15 -1
View File
@@ -48,7 +48,21 @@ class website_shoppingcart {
private function show_shoppingcart() {
if (isset($_POST['customer_info'])) {
$_SESSION['customer_info'] = $_POST['customer_info'];
$_SESSION['customer_info'] = trim((string)$_POST['customer_info']);
}
// 18.09.2026 -- Warenkorb ist EIN Formular: "Zur Kasse" und die Express-Knoepfe schicken
// es ab (Mengen + Anmerkung werden so mitgespeichert) und das Ziel steht in cart_goto.
if (isset($_POST['cart_goto']) && $_POST['cart_goto'] !== '') {
$goto = (string)$_POST['cart_goto'];
if ($goto === 'kasse') {
header('Location: /Kasse/');
exit;
}
if (preg_match('/^express:([a-z0-9_]{1,40})$/', $goto, $m)) {
header('Location: /Kasse/?payment_express_start='.$m[1]);
exit;
}
}
if (isset($_SESSION['customer_info']) && $_SESSION['customer_info']) {