{{ __('Dashboard') }}

Welcome to AgencyPulseWP where you can get everything you need to manage your agency and your clients billing online with WordPress.

 

You can view your products, manage your subscriptions, and access your plugin key for integration with WordPress. Explore the dashboard to get started!

Account

Name
{{ optional(auth()->user())->name ?? '-' }}
Email
{{ optional(auth()->user())->email ?? '-' }}
Plugin key

Affiliate Program

@php $affRecord = auth()->check() ? \AgencyPulse\Affiliate\Models\Affiliate::where('user_id', auth()->id())->first() : null; @endphp @if($affRecord && $affRecord->status === 'active') {{-- Active affiliate ─ show quick stats + dashboard link --}}

You are an active affiliate. Share your referral link and earn commission on every sale you refer.

@elseif($affRecord && $affRecord->status === 'pending') {{-- Pending ─ waiting for admin approval --}}

Your affiliate application is under review. We'll notify you once it has been approved.

View Application Status @elseif($affRecord && $affRecord->status === 'suspended') {{-- Suspended --}}

Your affiliate account has been suspended. Please contact support if you believe this is an error.

@else {{-- No affiliate record ─ invite to join --}}

Earn commission by referring new customers to AgencyPulseWP. Join our affiliate program and get a unique referral link to share.

  • Earn a commission on every sale you refer
  • Track your clicks, conversions, and payouts in real time
  • Get paid via your preferred payment method
@if(config('affiliate.require_approval'))
@csrf

Applications are reviewed by our team — you'll hear back within a couple of business days.

@else
@csrf
@endif @endif

Gift Subscriptions

@php $giftables = collect(); if (auth()->check()) { $giftables = auth()->user()->giftedProducts() ->where(function($q){ $q->whereNull('start_date')->orWhere('start_date', '<=', now()); }) ->where(function($q){ $q->whereNull('end_date')->orWhere('end_date', '>=', now()); }) ->orderByDesc('start_date') ->get(); } @endphp @if($giftables->isNotEmpty())
@foreach($giftables as $g) @php $prod = $g->product ?? null; $isExpiring = false; if ($g->end_date) { $isExpiring = $g->end_date->gt(now()) && $g->end_date->diffInDays(now()) <= 7; } @endphp
{{ $g->sku ?? ($prod->sku ?? '-') }}
@if($isExpiring) Expiring soon @endif
{{ $g->name ?? ($prod->name ?? 'Gift') }}
Start: {{ $g->start_date ? $g->start_date->format('Y-m-d') : '—' }}
End: {{ $g->end_date ? $g->end_date->format('Y-m-d') : '—' }}
@csrf @if($prod) @else @endif
@if(($g->sku ?? ($prod->sku ?? '')) === 'apwp-ao' && $g->end_date)

Complimentary access expires {{ $g->end_date->format('M j, Y') }}.
Subscribe to continue your 5 slots uninterrupted.
Your subscription will begin the day your gift expires.

@endif
@endforeach
@else

No gifted subscriptions available.

@endif
@php $aoUser = auth()->user(); $aoEverPurchased = $aoUser ? \App\Services\PluginAccessService::userEverPurchasedSku($aoUser, 'apwp-ao') : false; $aoHasActiveAccess = $aoUser ? \App\Services\PluginAccessService::userHasAccessToSku($aoUser, 'apwp-ao') : false; $aoSectionVisible = $aoEverPurchased || $aoHasActiveAccess; $aoProduct = \Vanilo\Product\Models\Product::where('sku', 'apwp-ao')->first(); $aoPluginKey = $aoUser->ao_plugin_key ?? null; $aoLicenseCount = $aoHasActiveAccess ? \App\Services\PluginAccessService::aoAllowedSlots($aoUser) : 0; $aoActiveSlots = $aoUser ? $aoUser->pluginAoDomains()->where('is_active', true)->orderBy('authorized_at')->get(['id', 'domain_label', 'domain_url', 'authorized_at', 'last_connected_at', 'is_disabled']) : collect(); $aoReactivateQty = max(1, (int) ceil($aoActiveSlots->count() / 5)); $aoTemplates = ($aoHasActiveAccess && $aoUser) ? \App\Models\AdminOrganizerTemplate::where('user_id', $aoUser->id) ->orderBy('name') ->get(['id', 'name', 'slug', 'description']) : collect(); @endphp @if($aoSectionVisible)

Admin Menu Organizer

@if($aoPluginKey)
Your apwp-ao Plugin Key

Enter this key in the "License & Connection" panel on each WordPress site where apwp-ao is installed.

@endif
Connected Sites @if($aoLicenseCount > 0 && $aoActiveSlots->isNotEmpty()) ({{ $aoActiveSlots->count() }} of {{ $aoLicenseCount }} slot{{ $aoLicenseCount > 1 ? 's' : '' }} used) @endif
@if($aoActiveSlots->isEmpty())

No sites connected yet. Install the plugin and enter your license key to connect a site.

@else
    @foreach($aoActiveSlots as $aoSlot)
  • {{ $aoSlot->domain_label ?? 'Site #' . ($loop->index + 1) }} @if($aoSlot->is_disabled) (disabled) @endif Last connected: {{ $aoSlot->last_connected_at ? $aoSlot->last_connected_at->diffForHumans() : 'Never' }} @if($aoSlot->domain_url) @endif @if($aoSlot->domain_url && $aoTemplates->isNotEmpty()) @endif @if($aoSlot->domain_url) @endif
  • @endforeach
@endif
{{-- Licence Management Row --}} @php $aoSubInfo = \App\Services\PluginAccessService::findActiveAoSubscription($aoUser); $isPureAo = $aoSubInfo['is_pure_ao'] ?? false; $currentQty = $aoSubInfo['quantity'] ?? null; $hasPending = ! is_null($aoSubInfo['quantity_pending'] ?? null); // Gift expiry — only queried when there is no purchased subscription $aoGiftExpiry = null; if (! $aoSubInfo && $aoUser) { $aoActiveGift = \App\Models\GiftedProduct::where('user_id', $aoUser->id) ->where('sku', 'apwp-ao') ->where(function ($q) { $q->whereNull('start_date')->orWhere('start_date', '<=', now()); }) ->whereNotNull('end_date') ->where('end_date', '>=', now()) ->orderBy('end_date') ->first(); $aoGiftExpiry = $aoActiveGift?->end_date; } @endphp
{{-- Summary line: only shown when there is a purchased subscription --}} @if($aoSubInfo && $currentQty !== null)
{{ $currentQty }} licence{{ $currentQty !== 1 ? 's' : '' }} · {{ $currentQty * 5 }} slots · {{ ucfirst($aoSubInfo['plan']) }} @if($hasPending) (reducing to {{ $aoSubInfo['quantity_pending'] }} on {{ $aoSubInfo['period_end']?->format('M j') }}) @endif
@endif @if(! $isPureAo && $aoSubInfo)

Your apwp-ao licence is part of a bundle. Contact support to adjust quantity.

@elseif($isPureAo)
@endif
{{-- end content layer --}} @if(!$aoHasActiveAccess)
@if($aoProduct)
@csrf
@else Reactivate Subscription @endif
@endif
{{-- end relative wrapper --}}
@endif {{-- AO Increase Licence Modal --}}

Add 1 Licence

Loading…

{{-- AO Decrease Licence Modal --}}

Remove 1 Licence

Loading…

{{-- Dashboard Message modal (shared, one per page) --}}

Dashboard Message

{{-- Apply Admin Theme Template modal (shared, one per page) --}} @if($aoHasActiveAccess && isset($aoTemplates) && $aoTemplates->isNotEmpty())

Apply Admin Theme Template

@endif {{-- Wipe Custom Admin modal (shared, one per page) --}} @if($aoHasActiveAccess)

Wipe Custom Admin

{{-- Backup warning --}}
Before continuing: export or save a template of your current admin settings from within the WordPress plugin. This action cannot be undone from here.

Resets all admin customization settings (branding, footer, colors, dashboard message) to plugin defaults. Optionally clear saved menu data.

{{-- reset_menu --}} {{-- reset_labels --}} {{-- nuke_menus --}}

@endif @if($aoHasActiveAccess && $aoPluginKey) @endif @if($aoHasActiveAccess && $aoActiveSlots->where('domain_url', '!=', null)->isNotEmpty()) @endif @if($aoHasActiveAccess && $aoActiveSlots->isNotEmpty()) @endif @if($aoHasActiveAccess && isset($aoTemplates) && $aoActiveSlots->where('domain_url', '!=', null)->isNotEmpty() && $aoTemplates->isNotEmpty()) @endif @if($aoHasActiveAccess && $aoActiveSlots->where('domain_url', '!=', null)->isNotEmpty()) @endif @if($aoHasActiveAccess) @endif