Add per-store managers for Woo Business accounts.
Deploy Ladill Woo Manager / deploy (push) Successful in 39s

Agencies can invite store-scoped managers via Identity, with access limited to one WooCommerce store while owners retain full multi-store control.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-08 07:51:08 +00:00
co-authored by Cursor
parent 1b0831b176
commit 09359ca86a
26 changed files with 921 additions and 28 deletions
@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Woo;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Woo\Concerns\ResolvesWooContext;
use App\Http\Controllers\Woo\Concerns\ResolvesWooContext;
use App\Models\WooStore;
use App\Services\Woo\InstallTokenService;
use App\Services\Woo\SubscriptionService;
@@ -24,6 +23,8 @@ class ConnectWordPressController extends Controller
public function start(Request $request): RedirectResponse|View
{
abort_if($this->wooMember($request), 403);
$validated = $request->validate([
'site_url' => ['required', 'url', 'max:500'],
'return_url' => ['required', 'url', 'max:2048'],
@@ -53,12 +54,14 @@ class ConnectWordPressController extends Controller
public function complete(Request $request): RedirectResponse|View
{
abort_if($this->wooMember($request), 403);
$pending = (array) $request->session()->pull('woo.connect', []);
if ($pending === []) {
return redirect()->route('woo.dashboard');
}
$user = $request->user();
$user = $this->accountUser($request);
abort_if(! $user, 401);
$siteUrl = (string) ($pending['site_url'] ?? '');