From f351030db47e02cb1570af7e961c5afca37989a3 Mon Sep 17 00:00:00 2001 From: isaacclad Date: Mon, 6 Jul 2026 23:52:37 +0000 Subject: [PATCH] Add settings page pinned to sidebar footer like other Ladill apps. Co-authored-by: Cursor --- .../Controllers/Woo/SettingsController.php | 14 ++++++ resources/views/partials/sidebar.blade.php | 10 ++++ resources/views/woo/settings.blade.php | 47 +++++++++++++++++++ routes/web.php | 2 + tests/Feature/WooWebTest.php | 11 +++++ 5 files changed, 84 insertions(+) create mode 100644 app/Http/Controllers/Woo/SettingsController.php create mode 100644 resources/views/woo/settings.blade.php diff --git a/app/Http/Controllers/Woo/SettingsController.php b/app/Http/Controllers/Woo/SettingsController.php new file mode 100644 index 0000000..4703fcd --- /dev/null +++ b/app/Http/Controllers/Woo/SettingsController.php @@ -0,0 +1,14 @@ + @endforeach + + diff --git a/resources/views/woo/settings.blade.php b/resources/views/woo/settings.blade.php new file mode 100644 index 0000000..d494428 --- /dev/null +++ b/resources/views/woo/settings.blade.php @@ -0,0 +1,47 @@ + + Settings + + + +

Connect WooCommerce stores from the WordPress plugin, then manage them here.

+ + Manage connected stores + + +
+ + + + + + +
+ @csrf + +
+
+
+
diff --git a/routes/web.php b/routes/web.php index 057a2c0..60963c8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,6 +9,7 @@ use App\Http\Controllers\Woo\ConnectWordPressController; use App\Http\Controllers\Woo\DashboardController; use App\Http\Controllers\Woo\OrderController; use App\Http\Controllers\Woo\ProductController; +use App\Http\Controllers\Woo\SettingsController; use App\Http\Controllers\Woo\StoreController; use App\Http\Controllers\WooWebhookController; use Illuminate\Support\Facades\Route; @@ -56,6 +57,7 @@ Route::middleware(['auth', 'platform.session'])->group(function () { Route::post('/categories/sync', [CategoryController::class, 'sync'])->name('woo.categories.sync'); Route::get('/stores', [StoreController::class, 'index'])->name('woo.stores.index'); Route::delete('/stores/{store}', [StoreController::class, 'destroy'])->name('woo.stores.destroy'); + Route::get('/settings', [SettingsController::class, 'edit'])->name('woo.settings'); Route::get('/wallet', fn () => redirect()->away(ladill_account_url('/wallet')))->name('woo.wallet'); Route::get('/team', fn () => redirect()->away(ladill_account_url('/account/team')))->name('account.team'); diff --git a/tests/Feature/WooWebTest.php b/tests/Feature/WooWebTest.php index 486e8ed..39441fa 100644 --- a/tests/Feature/WooWebTest.php +++ b/tests/Feature/WooWebTest.php @@ -219,6 +219,17 @@ class WooWebTest extends TestCase ]); } + public function test_authenticated_user_can_view_settings(): void + { + $user = User::factory()->create(); + + $this->actingAs($user) + ->get(route('woo.settings')) + ->assertOk() + ->assertSee('Settings') + ->assertSee('Manage connected stores'); + } + public function test_merchant_can_view_products_page(): void { $user = User::factory()->create();