neuer checkout-pfad: /de/bestellen/paketID und /en/checkout/PackageID

This commit is contained in:
Codex Agent
2025-12-20 16:17:21 +01:00
parent 18297aa3f1
commit 6500b8df2c
18 changed files with 331 additions and 345 deletions

View File

@@ -7,8 +7,8 @@ use App\Http\Controllers\CheckoutGoogleController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\LegalPageController;
use App\Http\Controllers\LocaleController;
use App\Http\Controllers\MarketingController;
use App\Http\Controllers\Marketing\GiftVoucherPrintController;
use App\Http\Controllers\MarketingController;
use App\Http\Controllers\PaddleCheckoutController;
use App\Http\Controllers\PaddleWebhookController;
use App\Http\Controllers\ProfileAccountController;
@@ -18,6 +18,7 @@ use App\Http\Controllers\Tenant\EventPhotoArchiveController;
use App\Http\Controllers\TenantAdminAuthController;
use App\Http\Controllers\TenantAdminGoogleController;
use App\Models\Package;
use App\Support\CheckoutRoutes;
use App\Support\LocaleConfig;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
@@ -154,6 +155,21 @@ Route::prefix('{locale}')
->name('buy.packages')
->defaults('locale', config('app.locale', 'de'));
if (config('checkout.enabled')) {
Route::get('/{checkoutSlug}/{package}', [CheckoutController::class, 'show'])
->where('checkoutSlug', 'bestellen|checkout')
->name('checkout.show');
} else {
Route::get('/{checkoutSlug}/{package}', function (string $locale, string $checkoutSlug, Package $package) {
return redirect()->route('packages', [
'locale' => app()->getLocale(),
'highlight' => $package->slug,
]);
})
->where('checkoutSlug', 'bestellen|checkout')
->name('checkout.show');
}
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'index'])
->name('marketing.profile.index');
@@ -309,24 +325,17 @@ Route::middleware('auth')->group(function () {
->name('tenant.events.photos.archive');
});
if (config('checkout.enabled')) {
Route::get('/purchase-wizard/{package}', [CheckoutController::class, 'show'])->name('purchase.wizard');
Route::get('/checkout/{package}', [CheckoutController::class, 'show'])->name('checkout.show');
} else {
Route::get('/purchase-wizard/{package}', function (Package $package) {
return redirect()->route('packages', [
'locale' => app()->getLocale(),
'highlight' => $package->slug,
]);
})->name('purchase.wizard');
Route::get('/purchase-wizard/{package}', function (Request $request, Package $package) use ($determinePreferredLocale) {
$locale = $determinePreferredLocale($request);
Route::get('/checkout/{package}', function (Package $package) {
return redirect()->route('packages', [
'locale' => app()->getLocale(),
'highlight' => $package->slug,
]);
})->name('checkout.show');
}
return redirect()->to(CheckoutRoutes::wizardUrl($package, $locale), 301);
});
Route::get('/checkout/{package}', function (Request $request, Package $package) use ($determinePreferredLocale) {
$locale = $determinePreferredLocale($request);
return redirect()->to(CheckoutRoutes::wizardUrl($package, $locale), 301);
});
Route::post('/checkout/login', [CheckoutController::class, 'login'])->name('checkout.login');
Route::post('/checkout/register', [CheckoutController::class, 'register'])->name('checkout.register');
Route::get('/checkout/auth/google', [CheckoutGoogleController::class, 'redirect'])->name('checkout.google.redirect');