Tenant subsites are auto-created by sj-crm-stripe on successful checkout via the checkout.session.completed webhook.
Flow: Stripe Checkout → webhook fires → SJ_CRM_Stripe_Tenant_Provisioner::create_tenant_site() → wpmu_create_blog() with slug from form → sj-crm plugins activated on the new blog → admin user assigned.
Subsites live at sjcrmapp.com/{slug}/. The blog_id and stripe_customer_id are stored together in wpp3_sj_crm_tenants.
