widerrufsbelehrung hinzugefügt und in den checkout mit eingebunden. refund ins backend eingebaut.

This commit is contained in:
Codex Agent
2025-12-07 11:57:05 +01:00
parent e092f72475
commit 1d3d49e05a
44 changed files with 1143 additions and 71 deletions

View File

@@ -38,18 +38,10 @@ class LegalController extends BaseController
public function show(Request $request, string $slug)
{
$locale = $request->query('lang', 'de');
// Support common English aliases as fallbacks
$s = strtolower($slug);
$aliasMap = [
'imprint' => 'impressum',
'privacy' => 'datenschutz',
'terms' => 'agb',
];
$resolved = $aliasMap[$s] ?? $s;
$slugs = $this->resolveSlugs($slug);
$page = LegalPage::query()
->where('slug', $resolved)
->whereIn('slug', $slugs)
->where('is_published', true)
->orderByDesc('version')
->first();
@@ -59,7 +51,7 @@ class LegalController extends BaseController
'Legal Page Not Found',
'The requested legal document does not exist.',
Response::HTTP_NOT_FOUND,
['slug' => $resolved]
['slug' => $slugs[0]]
);
}
@@ -77,6 +69,28 @@ class LegalController extends BaseController
])->header('Cache-Control', 'no-store');
}
protected function resolveSlugs(string $slug): array
{
$s = strtolower($slug);
$aliasMap = [
'imprint' => 'impressum',
'privacy' => 'datenschutz',
'terms' => 'agb',
'withdrawal' => 'widerrufsbelehrung',
'cancellation' => 'widerrufsbelehrung',
'cancellation-policy' => 'widerrufsbelehrung',
'widerruf' => 'widerrufsbelehrung',
];
$canonical = $aliasMap[$s] ?? $s;
return array_values(array_unique(
$canonical === 'widerrufsbelehrung'
? ['widerrufsbelehrung', 'widerruf']
: [$canonical]
));
}
protected function convertMarkdownToHtml(string $markdown): string
{
return trim((string) $this->markdown->convert($markdown));