PICK VIZ — Sports Picks Plugin
Complete Product Documentation · v3.26.3
PICK VIZ is a professional WordPress sports-picks management platform. It handles the full lifecycle of a sports handicapping service: posting picks, managing memberships, processing payments, auto-grading results via live score APIs, and presenting everything to subscribers through elegant, customizable front-end displays.
Table of Contents
- Product Overview
- Requirements & Installation
- Free vs Pro Features
- Database Schema
- Admin Panel
- Pick Management
- Membership & Packages
- Payment Processing
- Capper Dashboard
- Live Scores & Auto-Grading
- Analytics & ROI
- Email Notifications
- Affiliate Program
- Shortcodes Reference
- Card Themes & Visual Styles
- Pick Display Filters
- WooCommerce Integration
- Privacy & GDPR
- API Reference
- Works With: PICK VIZ Vault
1. Product Overview
PICK VIZ gives sports handicappers and picks services a complete, self-hosted platform to:
- Post and manage picks — teams, leagues, odds, units, confidence, analysis notes, attachments, and scheduled publishing
- Gate content by membership tier — free, pro, or custom package
- Accept payments — Stripe and PayPal subscriptions or one-time packages
- Auto-grade results — live score imports keep W/L records current without manual updates
- Track performance — ROI, win rate, profit units, capper leaderboards
- Display everything beautifully — 20+ card themes, 3 layout modes, real-time Ajax filters
The plugin is entirely self-contained. No third-party SaaS dependency is required for core functionality. Payment and live-score features use external APIs optionally.
2. Requirements & Installation
| Requirement |
Minimum |
Recommended |
| WordPress |
6.0 |
6.5+ |
| PHP |
7.4 |
8.1+ |
| MySQL |
5.7 |
8.0+ |
| HTTPS |
Required for payments |
— |
Installation Steps
- Upload the
predictionsplugin folder to /wp-content/plugins/ via FTP, or use Plugins → Add New → Upload Plugin in wp-admin.
- Activate the plugin under Plugins → Installed Plugins.
- On first activation the plugin automatically creates all required database tables.
- Navigate to PICK VIZ → Setup Wizard and complete the five-step onboarding:
- Site name & branding
- Assign shortcode pages (picks, packages, my account, matchup)
- Configure payment gateway (Stripe / PayPal / both / none)
- Create at least one membership package
- Configure the live score API key (optional)
- Add
[predictions_picks] to your picks page and [predictions_packages] to your pricing page.
Folder Structure
predictionsplugin/
├── predictions-plugin.php ← plugin bootstrap
├── src/ ← 23 core PHP classes
├── templates/ ← frontend & admin templates
│ ├── admin/ ← modern admin UI
│ └── partials/
├── assets/
│ ├── css/ ← frontend, admin, capper stylesheets
│ └── js/ ← frontend, admin, capper scripts
└── tests/
3. Free vs Pro Features
There are two separate "Free vs Pro" distinctions in PICK VIZ — don't confuse them:
- Plugin licensing (this section, below) — what you, the site owner, get depending on whether your own PICK VIZ license is Free Core or Pro.
- Subscriber access tiers (see Subscriber Access Tiers) — the Free / Pro / Package visibility you configure per pick for your own subscribers, available on every license tier.
Plugin Licensing: Free Core vs Pro
Stripe/PayPal checkout exists solely to sell Packages (every checkout and subscription code path is keyed to a package), so with Packages gated to Pro, checkout has nothing to charge for on Free and is listed as Pro accordingly.
| Feature |
Free Core |
Pro — $99/mo |
| Unlimited picks posting |
✓ |
✓ |
| Pick access gating (Free / Pro / Package) |
✓ |
✓ |
| ROI widget shortcode |
✓ |
✓ |
| Bulk CSV upload (500 rows/upload) |
✓ |
✓ |
| Capper dashboard (single/owner) |
✓ |
✓ |
| Packages & member subscriptions |
— |
✓ |
| Stripe direct checkout |
— |
✓ |
| PayPal / Venmo checkout |
— |
✓ |
| Email notifications |
— |
✓ |
| Live scores + auto-grading |
— |
✓ |
| Analytics dashboard + CSV export |
— |
✓ |
| Multi-capper marketplace (add & manage cappers) |
— |
✓ |
| Live fixtures & game carousel widgets |
— |
✓ |
Subscriber Access Tiers (Free / Pro / Package)
Independent of your own plugin license, every pick you post can be gated to one of three visibility tiers for your subscribers:
| Feature |
Available To |
| View free-tier picks |
All visitors (logged in or not) |
| View pro-tier picks |
Active paying subscribers |
| View package picks |
Subscribers to that specific package |
| Card themes (20+) |
Admin-configurable; apply to all viewers |
| Layout switcher (list / grid-2 / grid-3) |
All viewers |
| Sport, result, confidence filters |
All viewers |
| Pick analysis / notes |
Subscribers only (paywall on non-subscribers) |
| Attachment lightbox |
Subscribers only |
| Matchup page with capper profiles |
All viewers; full analysis gated |
| ROI shortcode |
All viewers |
| Capper dashboard (posting picks) |
WordPress users with capper role |
| My Account page |
All logged-in users |
Note: Packages & member subscriptions (creating packages, granting/managing member access) require a Pro plugin license — see the table above.
Paywall Behavior
When a visitor does not have access to a pick, the card replaces the pick detail with a configurable message and CTA button. The paywall message and button text/URL are all set in PICK VIZ → Settings → Paywall.
Admin Setting Default Value
──────────────────────────── ─────────────────────────────────────────
predictions_paywall_message Subscribe to see this pick.
predictions_paywall_button_text Subscribe Now
predictions_paywall_button_url (your packages/checkout page)
4. Database Schema
PICK VIZ creates its own tables in the WordPress database on activation. Table names are prefixed with the WordPress table prefix (default wp_).
wp_predictions_picks
| Column |
Type |
Notes |
id |
INT AUTO_INCREMENT |
Primary key |
sport |
VARCHAR(50) |
e.g. NFL, NBA, MLB |
league |
VARCHAR(100) |
e.g. NFC East, Western Conference |
home_team |
VARCHAR(100) |
Home team name |
away_team |
VARCHAR(100) |
Away team name |
home_logo |
TEXT |
URL to home team logo image |
away_logo |
TEXT |
URL to away team logo image |
game_date |
DATETIME |
Kickoff / event time |
pick_on |
VARCHAR(100) |
What the pick is on (home / away / over / under / draw) |
pick_detail |
VARCHAR(100) |
Spread / line detail (e.g. -3.5, 48.5) |
odds |
INT |
American odds (e.g. -110, +200) |
units |
DECIMAL(5,2) |
Stake in units |
confidence |
ENUM |
low / medium / high / very_high |
category |
VARCHAR(100) |
e.g. Spread, Money Line, Player Props |
notes |
TEXT |
Full analysis text |
image_url |
TEXT |
Attachment URL (screenshot, PDF, etc.) |
result |
ENUM |
pending / win / loss / push / void |
result_score |
VARCHAR(50) |
Final score string |
visibility |
ENUM |
free / pro / package |
package_id |
INT |
Required package ID when visibility = package |
handicapper_id |
INT |
WordPress user ID of the capper |
tags |
TEXT |
Comma-separated tag list |
scheduled_at |
DATETIME |
Publish-after datetime (null = immediate) |
created_at |
DATETIME |
Record creation timestamp |
wp_predictions_subscriptions
| Column |
Type |
Notes |
id |
INT AUTO_INCREMENT |
|
user_id |
INT |
WordPress user ID |
package_id |
INT |
Package subscribed to |
status |
ENUM |
active / cancelled / expired / trial |
gateway |
VARCHAR(50) |
stripe / paypal / manual |
gateway_subscription_id |
VARCHAR(255) |
External subscription ID |
starts_at |
DATETIME |
Subscription start |
expires_at |
DATETIME |
Subscription expiry |
created_at |
DATETIME |
|
wp_predictions_packages
| Column |
Type |
Notes |
id |
INT AUTO_INCREMENT |
|
name |
VARCHAR(255) |
Package display name |
description |
TEXT |
|
price |
DECIMAL(10,2) |
|
billing_period |
VARCHAR(50) |
monthly / yearly / one-time |
features |
TEXT |
JSON array of feature bullet points |
is_active |
TINYINT |
1 = visible in packages shortcode |
stripe_price_id |
VARCHAR(255) |
Stripe Price ID |
paypal_plan_id |
VARCHAR(255) |
PayPal Plan ID |
sort_order |
INT |
Display ordering |
5. Admin Panel
Navigate to PICK VIZ in the WordPress admin sidebar. The panel has seven sections.
Dashboard
At-a-glance KPIs:
- Win Rate — percentage of graded picks that are wins
- Total Profit — net profit in units across all graded picks
- Active Members — subscribers with status = active
- Total Picks — all-time pick count
Charts (powered by Chart.js):
- Monthly win/loss bar chart
- Sport breakdown donut
- Revenue over time
Picks List
Full tabular view of all picks. Columns: Sport, Matchup, Pick, Odds, Units, Result, Game Date, Posted, Handicapper.
Bulk Actions: Grade selected picks (win / loss / push / void), Delete selected.
Inline actions: Edit, Clone, Delete.
Picks can be filtered by sport, result, handicapper, or date range from the top bar.
Add / Edit Pick
All pick fields on one screen:
- Sport & League
- Home Team / Away Team (with logo URL fields)
- Game Date & Time
- Pick On + Pick Detail (the selection and line)
- American Odds
- Units (stake)
- Confidence (Low / Medium / High / Max)
- Category (Spread / Money Line / Total / etc.)
- Visibility (Free / Pro / Package-specific)
- Handicapper assignment
- Analysis Notes (rich textarea)
- Attachment (image or file upload)
- Tags
- Scheduled Publish (delay release until a set time)
Members
Table of all registered subscribers: user, email, package, status, expiry, gateway, gateway subscription ID. Includes manual subscription override (grant/revoke access directly).
Packages
Create and manage membership tiers:
- Name, description, price, billing period
- Feature bullet list
- Stripe Price ID and/or PayPal Plan ID
- Active/inactive toggle
- Display sort order
Analytics
Performance stats broken down by:
- Sport
- Capper / handicapper
- Confidence level
- Time period (7d / 30d / 90d / all-time)
Exports: CSV download of all picks with results.
Settings
Tabbed settings panel covering:
General
- Picks per page
- Default layout (compact / grid / list)
- Default card theme
- Default sort order
- Show/hide filters, layout switcher, theme switcher
- Paywall message, button text, button URL
- User bar (Hi, [name] / Log out strip above picks)
Payments
- Stripe Secret Key, Publishable Key, Webhook Secret
- PayPal Client ID, Client Secret, Mode (sandbox / live)
- Currency
Email
- From name / from email
- Welcome email toggle + subject + body
- New pick notification toggle + subject + body
- Renewal reminder toggle + timing
Pages
Assign WordPress page IDs to:
- Picks page
- Packages / pricing page
- My Account page
- Matchup page
Live Scores
- API key
- Auto-grade toggle
- Supported leagues for auto-grade
6. Pick Management
Creating a Pick
- Go to PICK VIZ → Add Pick.
- Fill in all required fields (sport, teams, game date, pick on, odds, units, confidence, visibility).
- Add analysis notes and optional attachment.
- Set Scheduled At if you want the pick hidden until a future time (useful for members who pay for early access).
- Click Save Pick.
The pick immediately appears in the picks feed (or at the scheduled time if delayed).
Grading Results
Manual grading:
- Find the pick in PICK VIZ → Picks List.
- Click Edit → set Result (win / loss / push / void) → optionally enter the final score → Save.
Bulk grading:
- Check the picks you want to grade.
- Choose Grade as Win (or Loss / Push / Void) from the Bulk Actions dropdown.
- Click Apply.
Auto-grading (requires live score API key in Settings → Live Scores):
- A background cron job polls the API at a configured interval.
- Matching games are graded automatically when a final score is found.
- The result and final score string are stored on the pick record.
Bulk Upload / Fixtures Import
PICK VIZ → Bulk Upload provides a CSV importer for adding multiple picks at once.
Required CSV columns: sport, home_team, away_team, game_date, pick_on, odds, units, confidence, visibility
Optional columns: league, pick_detail, category, notes, handicapper_id, tags, scheduled_at
A fixtures API integration (configured separately in Settings) can also push incoming game schedules directly as pending picks.
7. Membership & Packages
Package Types
| Type |
Billing |
Use Case |
| Free |
— |
Public picks, newsletter teasers |
| Monthly |
Recurring |
Standard subscription |
| Yearly |
Recurring |
Annual discount tier |
| One-time |
Single payment |
Season pass, single-sport package |
Subscription Lifecycle
Register / checkout
↓
Active subscription created
(status: active, expires_at set)
↓
Webhook received on payment success → renew expires_at
↓
Webhook received on cancellation / failure → status: cancelled / expired
↓
Expired subscribers see paywall on pro/package picks
Manual Subscription Management
In PICK VIZ → Members, admins can:
- Grant pro access to any user regardless of payment (e.g. comped access, beta testers)
- Set custom expiry dates
- Cancel subscriptions immediately
8. Payment Processing
Stripe Setup
- Create a Stripe account at stripe.com.
- Create a Product and one or more Prices (recurring or one-time) in the Stripe Dashboard.
- Copy each Price ID (e.g.
price_1QxxxxxABC) into the corresponding package in PICK VIZ → Packages.
- In PICK VIZ → Settings → Payments, enter:
- Secret Key (starts with
sk_live_ or sk_test_)
- Publishable Key (starts with
pk_live_ or pk_test_)
- Webhook Secret (from Stripe Dashboard → Developers → Webhooks)
- In Stripe, add a webhook endpoint pointing to
https://yoursite.com/wp-json/predictions/v1/stripe-webhook and subscribe to these events:
customer.subscription.created
customer.subscription.updated
customer.subscription.deleted
invoice.payment_succeeded
invoice.payment_failed
PayPal Setup
- Create a PayPal Developer app at developer.paypal.com.
- Create a Subscription Plan for each package.
- Copy each Plan ID into the corresponding package.
- In PICK VIZ → Settings → Payments, enter Client ID and Client Secret.
- PayPal webhook URL:
https://yoursite.com/wp-json/predictions/v1/paypal-webhook
WooCommerce Integration
If WooCommerce is active, packages can optionally be linked to WooCommerce products for checkout. See Section 17.
9. Capper Dashboard
The Capper Dashboard is a front-end panel for handicappers to post and manage picks without WordPress admin access.
Setup:
- Assign the WordPress "Capper" role to the user (or use PICK VIZ → Members → set role).
- Create a page and add
[predictions_capper_dashboard] to it.
- The capper logs in to the site and accesses their picks dashboard directly.
Features available in the Capper Dashboard:
- Post new picks (same fields as admin: sport, teams, matchup, odds, units, confidence, analysis, attachment)
- View their own picks list with status
- Edit / delete their own picks
- See their personal record (wins, losses, win rate, profit)
- Quick analytics chart of recent performance
Permissions:
- Cappers can only see and edit their own picks.
- The assigned handicapper ID is automatically attached to every pick they post.
- Admins see all picks regardless of handicapper.
10. Live Scores & Auto-Grading
Supported APIs
PICK VIZ integrates with third-party score APIs to automatically grade picks. The API key is entered in PICK VIZ → Settings → Live Scores.
Supported leagues for auto-grading:
- NFL, NBA, MLB, NHL
- NCAA Football (NCAAF), NCAA Basketball (NCAAB)
- Soccer (major leagues)
- MMA / UFC
How Auto-Grading Works
- A WordPress cron job runs every 30 minutes.
- It queries the score API for results of games matching pending picks.
- For each matched game with a final score:
- The result is evaluated against the pick (pick on, pick detail, odds).
- The pick record is updated:
result set to win / loss / push / void, result_score set to the final score string.
- Stats caches are cleared so the ROI shortcode reflects the new result immediately.
Manual Override
Auto-grading never overwrites a pick already graded manually. If you set a result manually first, the auto-grader skips that pick.
11. Analytics & ROI
ROI Shortcode
Display your all-time performance stats anywhere on the site:
[predictions_roi]
Outputs: Win Rate %, Profit (units), Total Picks, Wins, Losses.
Stats are cached for one hour; the cache clears automatically when a pick result is updated.
Admin Analytics Panel
PICK VIZ → Analytics shows:
- Overall record: W-L, win %, profit units, ROI %
- By Sport: breakdown of record per sport
- By Capper: each handicapper's individual W-L record and win rate
- By Confidence: performance segmented by Low / Medium / High / Max confidence picks
- Time Series: win/loss chart by week or month
- CSV Export: full picks export with results for external analysis
For each graded pick:
- Win: profit = units × (odds / 100) for positive odds; units × (100 / |odds|) for negative odds
- Loss: profit = –units
- Push: profit = 0
- Void: excluded from record
12. Email Notifications
PICK VIZ sends automated transactional emails using WordPress's wp_mail().
Available Emails
| Email |
Trigger |
Configurable |
| Welcome |
New subscriber checkout complete |
Subject, body, on/off |
| New Pick Alert |
Pick published (non-scheduled) |
Subject, body, on/off |
| Renewal Reminder |
X days before subscription expires |
Subject, body, timing, on/off |
| Payment Failed |
Payment gateway failure webhook |
Fixed template |
| Subscription Cancelled |
Cancellation webhook |
Fixed template |
Configuration
PICK VIZ → Settings → Email
- From Name: defaults to site name
- From Email: defaults to WordPress admin email
- Template variables available in email body fields:
{site_name} — your website name
{user_name} — subscriber's display name
{package_name} — package they subscribed to
{expiry_date} — formatted subscription expiry
{pick_sport} — sport of the new pick
{pick_matchup} — "Home Team vs Away Team"
{picks_url} — URL of your picks page
13. Affiliate Program
PICK VIZ includes a built-in affiliate module so your subscribers or external publishers can earn commissions by referring new members.
Features:
- Each affiliate gets a unique referral link (
?ref=USERNAME)
- Commission is tracked on successful subscription conversions
- Admin view of: affiliate name, referrals, conversions, owed commission
- Manual commission payout marking
Setup:
- Enable affiliates in PICK VIZ → Settings → Affiliate.
- Set commission rate (percentage of subscription amount).
- Users can request affiliate links from their My Account page.
- Admin approves or auto-approves affiliate applications.
14. Shortcodes Reference
[predictions_picks]
The primary picks feed. Renders the full card grid with filters, layout switcher, theme switcher, and pagination.
[predictions_picks
limit="20"
sport=""
category=""
result=""
layout=""
theme=""
show_filters="1"
show_notes="1"
show_layout_switcher="1"
show_theme_switcher="1"
sort=""
]
| Parameter |
Type |
Default |
Description |
limit |
integer |
20 |
Picks per page |
sport |
string |
"" |
Pre-filter by sport slug (e.g. NFL) |
category |
string |
"" |
Pre-filter by category (e.g. Spread) |
result |
string |
"" |
Pre-filter by result: pending, win, loss, push, void |
layout |
string |
"" |
Override layout: list, grid-2, grid-3, compact |
theme |
string |
"" |
Override card theme (see Card Themes) |
show_filters |
1/0 |
1 |
Show/hide the filter bar |
show_notes |
1/0 |
1 |
Show/hide the analysis notes toggle |
show_layout_switcher |
1/0 |
1 |
Show/hide the grid/list/2col switcher |
show_theme_switcher |
1/0 |
1 |
Show/hide the theme dot-switcher |
sort |
string |
"" |
Default sort: date_desc, date_asc, posted_desc, posted_asc, odds_desc, odds_asc, units_desc, units_asc |
URL parameters (override shortcode atts dynamically):
?pp_sport=NFL&pp_result=win&pp_layout=grid-2&pp_sort=odds_desc&pp_q=Chiefs&pp_confidence=high&pp_days=30
[predictions_packages]
Displays your membership/pricing tiers.
[predictions_packages
theme=""
template="modern"
layout="grid"
ids=""
]
| Parameter |
Type |
Default |
Description |
theme |
string |
admin setting |
Card theme override |
template |
string |
modern |
Template style: modern, classic, minimal |
layout |
string |
grid |
grid or list |
ids |
string |
"" |
Comma-separated package IDs to show only those packages in that order. E.g. ids="3,1" |
[predictions_matchup]
Single-game expert picks page. Shows a broadcast-style matchup header, then all expert picks for that game grouped by market (Spread / Money Line / Over-Under), with capper profiles and gated analysis.
[predictions_matchup
id="0"
theme=""
]
| Parameter |
Type |
Default |
Description |
id |
integer |
0 |
Specific pick ID to anchor the matchup. Falls back to most recent pick if 0. Also reads ?pp_game=ID from the URL. |
theme |
string |
"" |
Card theme override |
Visitor experience:
- The matchup header (team names, logos, date, sport) is visible to all.
- Pick selection (what the capper picked) is visible to all.
- Capper analysis notes are blurred behind a paywall for non-subscribers.
[predictions_my_account]
The subscriber's self-service account page.
[predictions_my_account]
No parameters. Displays:
- Active subscription details (package, expiry, status)
- Billing history
- Cancel subscription button
- Change password form
- Affiliate link (if affiliate module enabled)
[predictions_roi]
Outputs a compact stats bar: Win Rate, Profit Units, Total Picks.
[predictions_roi]
No parameters. Reads from the same cached stats as the admin dashboard.
[predictions_fixtures]
Displays upcoming scheduled fixtures (games) from the fixtures API or manually entered data.
[predictions_fixtures
sport=""
limit="10"
]
| Parameter |
Type |
Default |
Description |
sport |
string |
"" |
Filter by sport |
limit |
integer |
10 |
Number of fixtures to show |
[predictions_game_carousel]
A scrollable horizontal carousel of upcoming game tiles. Useful as a hero or section accent.
[predictions_game_carousel
sport=""
limit="8"
autoplay="1"
]
| Parameter |
Type |
Default |
Description |
sport |
string |
"" |
Filter by sport |
limit |
integer |
8 |
Number of game tiles |
autoplay |
1/0 |
1 |
Auto-scroll carousel |
[predictions_capper_dashboard]
Renders the full front-end capper posting panel. Only visible to logged-in users with the Capper role (or admin).
[predictions_capper_dashboard]
No parameters.
Legacy Shortcodes
These older shortcodes still work for backward compatibility but new installs should use the ones above.
| Shortcode |
Replacement |
[predictions_matches] |
[predictions_fixtures] |
[predictions_leaderboard] |
Use Analytics panel or custom query |
[predictions_my_predictions] |
[predictions_my_account] |
15. Card Themes & Visual Styles
PICK VIZ ships with 20 built-in card themes selectable from the admin or the shortcode theme attribute.
| Theme Slug |
Style |
classic |
Orange-accented classic sports card |
dark |
Dark background with muted neutrals |
neon-onyx |
Black base with neon green highlights |
azure-mist |
Sky-blue tonal card |
teal-mist |
Teal accent on dark base |
meridian-blue |
Deep navy corporate |
solar-dusk |
Warm orange/amber sunset |
starry-night |
Indigo/lavender night sky |
perpetuity |
Gold-on-dark classic luxury |
notebook |
Lined-notebook paper aesthetic |
glass |
Frosted glass / glassmorphism |
minimal |
Near-black ultra-clean |
gold-dark |
Rich gold on charcoal |
bet-slip |
Dark bet-slip receipt |
bet-slip-light |
Light receipt / paper |
bet-slip-receipt |
Cream/warm paper receipt |
metallic-gold |
Brushed gold metallic |
metallic-silver |
Brushed silver metallic |
metallic-black |
Anodized black metallic |
metallic-platinum |
Platinum metallic |
Card Edge Variants
In addition to color themes, the card structure has three edge styles:
data-edge Value |
Look |
punch |
Circular punch-hole cutout left edge |
scallop |
Scalloped / ticket perforated bottom |
left-accent |
Bold colored left-border accent |
Set in admin via PICK VIZ → Settings → General → Card Edge.
Theme Switcher
By default a row of color-dot buttons appears above the picks grid letting visitors switch theme on the fly. This can be disabled per-shortcode with show_theme_switcher="0" or globally in Settings.
16. Pick Display Filters
The filter bar (shown when show_filters="1") provides:
Quick Filter Pills
- Sport: All + one pill per sport in the database
- Result: All / Pending / Win / Loss / Push / Void
Advanced Filters Panel (collapsible)
- Confidence: All / Low / Medium / High / Max
- Timeframe: All time / Last 7 days / Last 30 days / Last 90 days / Last year
- Category: All + unique categories from the database
- Access Tier: All / Free / Pro Only / Package Specific
- Handicapper: All cappers / individual capper filter
- Sort By: Game Date (newest/oldest), Posted Date (newest/oldest), Odds (high/low), Units (high/low)
Search
Full-text search field: matches team names, leagues, pick detail, and notes.
URL Persistence
All filter state is reflected in URL parameters so filtered views are shareable/bookmarkable:
/picks/?pp_sport=NFL&pp_result=win&pp_confidence=high&pp_days=30&pp_q=Chiefs
17. WooCommerce Integration
When WooCommerce is active, PICK VIZ bridges its subscription system with the WooCommerce cart and checkout flow.
How It Works
- Each PICK VIZ Package can be linked to a WooCommerce Product.
- When a customer checks out via WooCommerce, the subscription is automatically activated in PICK VIZ.
- Recurring billing is handled by WooCommerce Subscriptions (if installed) or by Stripe/PayPal directly.
Checkout Page Styling
PICK VIZ applies custom CSS to the WooCommerce checkout to match the Vault theme:
- Two-column form / order summary layout (desktop)
- Stacked single-column (mobile)
- Matching button styles, input fields, and color tokens
18. Privacy & GDPR
PICK VIZ includes a Privacy class that registers plugin-specific personal data with WordPress's core privacy tools.
- Personal Data Exporter: included. WordPress's built-in Tools → Export Personal Data will include all subscription, pick, and affiliate records for a given email address.
- Personal Data Eraser: included. Tools → Erase Personal Data will delete subscription records for the user.
- Data Minimization: the plugin stores only what is necessary to manage subscriptions and display picks.
- Password Storage: all passwords are managed by WordPress core (never stored in plugin tables).
19. API Reference
PICK VIZ exposes REST endpoints under the predictions/v1 namespace.
| Endpoint |
Method |
Auth |
Description |
/predictions/v1/stripe-webhook |
POST |
Stripe signature |
Stripe event handler |
/predictions/v1/paypal-webhook |
POST |
PayPal signature |
PayPal event handler |
/predictions/v1/picks |
GET |
None (public) |
Returns public picks JSON |
/predictions/v1/picks/{id} |
GET |
None / subscriber |
Returns a single pick |
/predictions/v1/stats |
GET |
None |
Returns cached ROI stats |
The picks endpoints respect the same visibility/paywall logic as the shortcode: pro picks return a paywall object for non-subscribers.
20. Works With: PICK VIZ Vault
PICK VIZ Plugin is designed to work seamlessly with the PICK VIZ Vault Theme and PICK VIZ Elementor Widgets addon.
When both are active together:
- The Vault theme applies a branded dark-gold skin to all plugin output (cards, filters, packages, my account).
- Elementor widgets (Latest Pick, Winner Pick, Upcoming Game, Upcoming Game List) pull live data directly from the plugin's database tables.
- The theme's Ticker feature can pull upcoming fixtures from the plugin and display them in a scrolling top bar.
- The demo importer sets up a complete site with pre-configured pages, shortcodes, and layouts in one click.
→ See the PICK VIZ Vault Theme & Elementor Widgets Documentation for full details.
PICK VIZ Plugin · v3.26.3 · Documentation generated July 2026
For support, feature requests, or bug reports please contact the development team.
Complete Product Documentation · v2.5+
PICK VIZ Vault is a premium WordPress theme built for elite sports picks services. It combines a dark-gold luxury aesthetic with a powerful Elementor widget library and a one-click demo importer — giving you a professionally designed, fully functional picks membership site from day one.
Table of Contents
- Product Overview
- Requirements & Installation
- Theme Architecture
- One-Click Demo Import
- Theme Options Panel
- Elementor Widget Library
- Agency Hero
- Section Heading
- Picks Grid
- Picks Carousel
- Games Carousel
- Live Record
- Tier Plaques
- Capper Podium
- Kickoff Countdown
- Upcoming Game Countdown
- Upcoming Matchups List
- Latest Pick Card
- Winner Pick Card
- Timeline
- About Split
- Bento Trust
- CTA Banner
- FAQ
- News Cards
- Marquee Stats
- Login Form
- Header (Elementor)
- Footer (Elementor)
- Contact Hero
- Home Page Templates
- Page Templates
- CSS Design System
- JavaScript & Animations
- WooCommerce Styling
- Plugin Skin Bridge
- Works With: PICK VIZ Plugin
1. Product Overview
PICK VIZ Vault provides three interconnected products:
| Product |
What It Is |
| Vault Theme |
The WordPress theme — template hierarchy, global CSS, design tokens, admin options panel, WooCommerce styling, motion.js |
| PICK VIZ Elementor Widgets |
A separate companion plugin (installed alongside the theme) — 24+ Elementor widgets under a "PICK VIZ" panel category |
| Demo Importer |
Built-in one-click importer that creates the full home page with all sections, sections numbered 01–08, pre-configured in all three hero variants |
All three work in harmony. The theme supplies CSS custom properties (design tokens). The widgets consume those tokens — they have no hardcoded colors or fonts, so they automatically adapt to every theme preset and user accent override.
2. Requirements & Installation
| Requirement |
Minimum |
Recommended |
| WordPress |
6.0 |
6.5+ |
| PHP |
7.4 |
8.1+ |
| Elementor |
3.5 (Free) |
3.18+ |
| Elementor Pro |
Optional |
Recommended (Theme Builder) |
| PICK VIZ Plugin |
Optional |
Recommended (live data widgets) |
| WooCommerce |
Optional |
For subscription checkout |
Installation
Theme:
- Go to Appearance → Themes → Add New → Upload Theme.
- Upload
pickviz-vault.zip.
- Activate.
Elementor Widgets:
- Go to Plugins → Add New → Upload Plugin.
- Upload
pickviz-elementor.zip.
- Activate.
Verify:
- In Elementor editor, open the widget panel. You should see a PICK VIZ category at the top.
- Go to Appearance → Vault to access the theme options panel.
3. Theme Architecture
pickviz-vault/
├── style.css ← Theme header (name, version, author)
├── functions.php ← Bootstrap: requires all inc/ files
├── theme.json ← Block editor color palette & typography
├── header.php ← WordPress template header hook
├── footer.php ← WordPress template footer hook
├── index.php ← Fallback template
├── single.php ← Blog post singular
├── page.php ← Standard page
├── 404.php ← 404 error page
├── comments.php ← Comments template
├── template-fullwidth.php ← Full-width page (no sidebar)
│
├── page-templates/
│ └── vault-home.php ← Home page template (Elementor canvas)
│
├── template-parts/
│ ├── header-fallback.php ← Built-in sticky header (used when no Elementor header template is set)
│ └── footer-fallback.php ← Built-in footer with tiers, disclaimer, social links
│
├── inc/
│ ├── setup.php ← Theme supports, nav menus, image sizes
│ ├── enqueue.php ← Google Fonts, vault.css, motion.js
│ ├── options.php ← Options panel definitions, getter vault_opt()
│ ├── admin-menu.php ← Vault admin sidebar menu
│ ├── elementor.php ← Elementor Theme Builder locations, widget category
│ ├── demo-import.php ← One-click demo importer (all three home variants)
│ ├── woocommerce.php ← WooCommerce template overrides & CSS bridge
│ ├── design.php ← Design token output (CSS custom properties from options)
│ ├── branding.php ← Login page branding, admin bar logo
│ ├── login.php ← Custom login page template
│ ├── access.php ← wp-admin restriction for non-admins
│ ├── stats.php ← Live stats helper (shared with Elementor plugin)
│ └── plugin-activation.php ← Dependency notices
│
└── assets/
├── css/
│ ├── vault.css ← Full theme stylesheet (10,000+ lines)
│ ├── tokens.css ← CSS custom property definitions
│ ├── woocommerce.css ← WooCommerce-specific overrides
│ ├── ambience.css ← Particle backgrounds, ambient glows
│ ├── plugin-skin.css ← PICK VIZ plugin card skin bridge
│ └── admin-setup.css ← Options panel admin styles
├── js/
│ └── motion.js ← Scroll reveal, count-up, card tilt+shine, magnetic buttons
└── img/ ← Theme images (logos, avatars, hero assets)
4. One-Click Demo Import
Appearance → Vault → Demo Import
The demo importer creates a complete Elementor-powered home page in one click. It supports three hero variants and builds all eight sections automatically.
What the Importer Creates
| # |
Section |
Content |
| 01 |
Board |
Hero section (variant-dependent: Split / Medallion / Minimal) |
| 02 |
Game Day |
Upcoming Game countdown + Upcoming List (left) + Latest Pick + Winner Pick (right) |
| 03 |
Membership |
Tier Plaques pricing cards |
| 04 |
Process |
Timeline "How It Works" steps |
| 05 |
About |
About Split section (image + copy) |
| 06 |
Trust |
Bento Trust grid (stats, testimonials, support) |
| 07 |
Newsroom |
News Cards blog feed |
| 08 |
FAQ |
Accordion FAQ |
Hero Variants
| Variant |
Description |
vault-home |
Split hero — pick card carousel on the right |
hero-medallion |
Centered medallion hero with large logo focal point |
hero-minimal |
Ultra-clean minimal hero, bold type, no carousel |
The home page is assigned the Vault Home page template so it renders without a title banner.
Running the Importer
- Go to Appearance → Vault → Demo Import.
- Choose your hero style.
- Click Import. The importer:
- Creates a "Home" page with the correct page template
- Writes the full Elementor JSON (
_elementor_data postmeta) for all eight sections
- Sets the page as the WordPress front page
- Optionally creates a nav menu with the page
Note: Running the importer again regenerates the page. Save any manual Elementor edits before re-importing.
5. Theme Options Panel
Appearance → Vault (or PICK VIZ Vault in the admin sidebar)
All settings are stored in a single WordPress option: vault_options. The helper function vault_opt( 'key' ) retrieves any value with its default fallback.
Settings can be exported as JSON and imported — useful for migrating settings between sites or staging environments.
| Setting |
Key |
Default |
Description |
| Header Template |
header_template |
"" |
Elementor template ID. Leave blank to use the built-in sticky header. |
| Footer Template |
footer_template |
"" |
Elementor template ID. Leave blank to use the built-in footer. |
| Page Header |
page_header |
banner |
Inner pages: banner shows a title banner, off removes it |
| Breadcrumbs |
page_breadcrumbs |
1 |
Show/hide breadcrumb trail on inner pages |
| Button Style |
button_style |
arrow |
arrow | gradient | solid | outline | pill | sharp | plain |
| Sticky Header |
sticky_header |
1 |
Enable/disable header sticking on scroll |
| Header CTA Text |
header_cta_text |
Join the Vault |
The call-to-action button label in the header |
| Header CTA URL |
header_cta_url |
"" |
CTA link. Blank defaults to the plugin Subscribe/Packages page. |
| Dashboard Label |
dashboard_label |
Dashboard |
Label for the member dashboard link in the header (shown to logged-in users) |
| Dashboard URL |
dashboard_url |
"" |
URL for the dashboard link. Blank defaults to the Capper Dashboard page. |
| Restrict Backend |
restrict_backend |
1 |
Block non-admins from accessing /wp-admin/ |
| Header Background |
header_bg |
"" |
Hex color override. Blank = theme token. |
| Header Text |
header_text |
"" |
Hex color override for header text/icons |
| Footer Background |
footer_bg |
"" |
Hex color override |
| Footer Text |
footer_text |
"" |
Hex color override |
Footer Content:
| Setting |
Key |
Default |
| Footer Tagline |
footer_tagline |
Members-only picks. Verified record. |
| Footer Disclaimer |
footer_disclaimer |
Please gamble responsibly. Picks are opinions, not guarantees. |
| Trust Chips |
footer_trust_chips |
SSL Secure, Cancel Anytime, Verified Record |
| Payment Methods |
footer_pay |
Visa, Mastercard, PayPal, Stripe, Amex |
| Credit Prefix |
footer_credit_pre |
Developed by |
| Credit Name |
footer_credit_name |
PickViz Team |
| Credit URL |
footer_credit_url |
https://pickviz.com |
| Newsletter Title |
footer_news_title |
Free pick alerts |
| Newsletter Text |
footer_news_text |
Join the list — the best free plays, straight to your inbox. |
| Newsletter Form ID |
footer_news_form |
"" |
5.2 Branding & Logos
| Setting |
Key |
Description |
| Main Logo |
logo_main |
Attachment ID — primary logo (shown on light or dark header) |
| Dark Background Logo |
logo_dark |
Attachment ID — alternate logo for dark headers |
| Mobile / Square Logo |
logo_mobile |
Attachment ID — compact square mark for mobile header |
Logos are set via the media picker in the options panel. They override the standard WordPress Customizer logo.
5.3 Typography
| Setting |
Key |
Default |
Options |
| Font Pair |
font_pair |
saira-inter |
Curated Google Font pairing. Default: Saira (headings) + Inter (body) |
| Base Size |
base_size |
16 |
Body font size in px (14–22) |
| Heading Weight |
head_weight |
800 |
CSS font-weight for all headings |
| Heading Spacing |
head_spacing |
tight |
tight | normal | wide |
Available Font Pairs:
| Slug |
Heading |
Body |
saira-inter |
Saira (800) |
Inter |
oswald-roboto |
Oswald |
Roboto |
raleway-lato |
Raleway |
Lato |
montserrat-open-sans |
Montserrat |
Open Sans |
exo2-nunito |
Exo 2 |
Nunito |
bebas-source |
Bebas Neue |
Source Sans Pro |
5.4 Colors & Presets
| Setting |
Key |
Default |
Description |
| Color Preset |
preset |
vault-gold |
Built-in accent palette |
| Accent Color |
accent_color |
"" |
Hex override for --vt-accent. Blank uses preset. |
| Accent Color 2 |
accent_color2 |
"" |
Hex override for --vt-accent-2 (gradient second stop) |
| Mode Default |
mode_default |
dark |
dark | light |
| Mode Toggle |
mode_toggle |
1 |
Show the sun/moon toggle in the header |
| Arrow Pill |
arrow_pill |
accent |
Arrow-button icon pill color: accent | white | black |
Built-in Color Presets:
| Preset Slug |
Primary Accent |
Secondary |
vault-gold |
#C8A84B (luxury gold) |
#E8C56A |
emerald |
#10B981 |
#34D399 |
crimson |
#DC2626 |
#EF4444 |
royal |
#1D4ED8 |
#3B82F6 |
cyan |
#06B6D4 |
#22D3EE |
violet |
#7C3AED |
#8B5CF6 |
5.5 Layout & Spacing
| Setting |
Key |
Default |
Options |
| Content Width |
content_width |
1240 |
Max page width in px |
| Border Radius |
radius |
rounded |
sharp | soft | rounded | pill |
| Section Spacing |
section_space |
comfortable |
tight | comfortable | roomy |
5.6 Picks Display
Controls how the PICK VIZ plugin's shortcode output renders when the plugin skin bridge is active (use_plugin_themes = 0).
| Setting |
Key |
Default |
Options |
| Override Plugin Skin |
use_plugin_themes |
0 |
0 = Vault skin; 1 = Use plugin's own themes |
| Picks Layout |
picks_layout |
compact |
compact | grid | list |
| Picks Card Theme |
picks_card_theme |
bet-slip |
Base theme applied by the skin bridge |
| Show Record Chip |
show_record_chip |
0 |
Show W-L record chip in the header |
5.7 Social Dock
A sticky social media icon dock that floats on the side or bottom of every page.
| Setting |
Key |
Default |
Options |
| Facebook URL |
social_facebook |
# |
|
| Twitter / X URL |
social_twitter |
# |
|
| Instagram URL |
social_instagram |
# |
|
| YouTube URL |
social_youtube |
# |
|
| Telegram URL |
social_telegram |
# |
|
| Discord URL |
social_discord |
# |
|
| TikTok URL |
social_tiktok |
# |
|
| Dock Position |
socials_dock |
left |
off | left | right | bottom |
| Icon Style |
socials_style |
mono |
brand | accent | mono | outline |
| Icon Shape |
socials_shape |
rounded |
rounded | circle | square | bare |
Setting any social URL to # or leaving blank hides that platform from the dock. Setting socials_dock to off hides the entire dock.
5.8 Effects & Animations
| Setting |
Key |
Default |
Description |
| Smooth Scroll |
smooth_scroll |
1 |
Native CSS smooth scrolling |
| Scroll-to-Top |
scroll_top |
1 |
Floating scroll-to-top button (appears after 300px scroll) |
| Site Preloader |
site_loader |
ring |
Style: ring spinner. Set to off to disable. |
| Animations Master |
animations |
1 |
Master switch for all scroll-reveal effects |
| Scroll Reveal Titles |
reveal_titles |
1 |
Headings ease in as they enter the viewport |
| Card Shine |
card_shine |
1 |
Light-sweep shimmer on cards on hover |
| Particle Backgrounds |
bg_particles |
1 |
Ambient floating particle layer site-wide |
| Custom Cursor Dot |
cursor_dot |
0 |
Smooth-follow dot on the mouse pointer |
| Hero Layout |
hero_layout |
split |
Default Agency Hero variant: split | medallion | minimal |
| Hero Style |
hero_style |
dark |
Agency Hero background: dark | spotlight |
Motion.js animations: scroll-reveal (fade + slide up), count-up number animation, card tilt with perspective shine, and magnetic button attraction effect. All respect the animations master switch and the user's prefers-reduced-motion OS setting.
5.9 Notifications
Sticky new-pick notification toast that appears when the plugin publishes a new pick.
| Setting |
Key |
Default |
Description |
| Enable Notifications |
notify_new_picks |
1 |
Show new pick toast notifications |
| Poll Interval |
notify_interval |
3 |
Minutes between background checks for new picks |
| Members Only |
notify_members_only |
0 |
1 = only show notifications to logged-in subscribers |
The notification stays visible until the visitor manually closes it. Useful for driving members back to the picks page.
5.10 Live Ticker
A scrolling horizontal ticker bar that shows upcoming fixtures and/or recent picks.
| Setting |
Key |
Default |
Description |
| Enable Ticker |
ticker_global_enable |
0 |
Master on/off for the ticker |
| Position |
ticker_global_pos |
below |
above (above header) | below (below header) |
| Style |
ticker_global_style |
wide |
wide (full-width) | slim |
| Speed |
ticker_global_speed |
normal |
slow | normal | fast |
| Label |
ticker_global_label |
LIVE |
Short label shown before the scrolling content |
| Background |
ticker_global_bg |
"" |
Hex color. Blank = accent color. |
| Text |
ticker_global_text |
"" |
Hex text color. Blank = auto. |
| Accent |
ticker_global_accent |
"" |
Hex accent override for label |
| Enable API Fixtures |
ticker_api_enable |
0 |
Pull fixtures from the live score API into the ticker |
| Show Live Games |
ticker_api_live |
0 |
Include currently live (in-progress) games |
| API Poll Interval |
ticker_api_interval |
12 |
Minutes between API polls (conserves free API quota) |
| Clear After Grading |
ticker_api_clear |
0 |
Remove finished games from the ticker after auto-grading |
Ticker Content Sources:
- PICK VIZ Plugin picks: upcoming pending picks are automatically inserted.
- API Fixtures (when
ticker_api_enable = 1): live game schedule from the configured score API.
- Both sources can be active simultaneously; they merge into a single deduplicated ticker stream.
5.11 Import / Export / Reset
Available at the bottom of the Theme Options panel:
- Export Settings — downloads
vault-options-YYYYMMDD.json
- Import Settings — paste JSON or upload a file to overwrite all options
- Restore Defaults — resets all options to their factory defaults (irreversible without a prior export)
All widgets appear under the PICK VIZ category in the Elementor panel. Every widget is server-side rendered (SSR) — data is always live and correct in the editor and on the front end. No widget relies on JavaScript-only rendering.
Agency Hero
Widget name: pickviz_agency_hero | Icon: eicon-slides
The primary hero section widget. Three visual variants, configurable background, and an optional animated pick card carousel.
Controls:
| Tab |
Control |
Options |
| Content |
Layout |
split — card carousel right; medallion — centered; minimal — type-only |
| Content |
Background Style |
dark — deep dark bg; spotlight — radial highlight |
| Content |
Headline |
Text (editable) |
| Content |
Subheadline |
Text (editable) |
| Content |
Primary Button |
Label + URL |
| Content |
Secondary Button |
Label + URL |
| Content |
Hybrid Pick Card |
Toggle show/hide the live pick preview card |
| Content |
Pick Source |
auto (from DB) | manual |
| Content |
Accept Members Text |
Text shown in the acceptance notification strip |
| Content |
Show Notification |
Toggle new-member acceptance notification strip |
The "Hybrid Pick Card" in Auto mode pulls the most recent win pick from the database and renders it as a real pick card inside the hero.
Section Heading
Widget name: pickviz_section_heading | Icon: eicon-t-letter
Styled section heading with kicker, headline, and subtext. Used at the top of every major content section to maintain visual consistency.
Controls: Kicker text, Headline, Subtext, Alignment (left / center / right), Headline size.
Picks Grid
Widget name: pickviz_picks_grid | Icon: eicon-posts-grid
Embeds the [predictions_picks] shortcode inside a styled Elementor widget context. Supports all shortcode parameters via Elementor controls.
Controls: Limit, Sport filter, Result filter, Layout (compact / grid-2 / grid-3 / list), Theme override, Show filters toggle, Show notes toggle, Sort order.
Picks Carousel
Widget name: pickviz_picks_carousel | Icon: eicon-carousel
A horizontally scrollable carousel of pick cards. Draggable with mouse. Auto-scrolls optionally.
Controls: Limit, Sport filter, Result filter, Card theme, Auto-play toggle, Auto-play speed, Pause on hover.
Games Carousel
Widget name: pickviz_games_carousel | Icon: eicon-slider-push
A thin horizontal scroller showing upcoming game tiles (team logos, matchup, countdown). Pulls from the PICK VIZ plugin's pending picks.
Controls: Limit, Sport filter, Show countdown toggle.
Live Record
Widget name: pickviz_live_record | Icon: eicon-counter
Displays the service's live Win Rate, Profit (units), and Total Picks in animated count-up number blocks.
Controls: Show Win Rate toggle, Show Profit toggle, Show Picks toggle, Label overrides.
Stats are sourced from the same cached stats function used across the theme and plugin.
VIP Tier Plaques
Widget name: pickviz_tier_plaques | Icon: eicon-price-table
Premium pricing cards for membership tiers. Pulls from PICK VIZ Package data or falls back to configurable manual tiers.
Controls: Source (auto from packages / manual), up to 3 manual tier configs (name, price, period, features, CTA label/URL), highlighted tier (e.g. "Most Popular"), plaque style (metallic gold / silver / platinum).
Capper Podium
Widget name: pickviz_capper_podium | Icon: eicon-person
A ranked display of the top 3 cappers by win rate. Shows avatar, name, record, and win percentage.
Controls: Limit (1–5), Sort by (win rate / profit / picks), Show profit toggle, Show record toggle, Time period (all / 30 days / 7 days).
Kickoff Countdown
Widget name: pickviz_kickoff_countdown | Icon: eicon-countdown
A large-format digital countdown timer to a specific game or event.
Controls: Target date/time (manual), Label, Style (digital / blocks / minimal), Show days toggle, Show seconds toggle.
Upcoming Game Countdown
Widget name: pickviz_upcoming_game | Icon: eicon-countdown
A sophisticated countdown card for the next game in the database. Features a flip-clock animation — split-flap digits that flip as time changes, styled to match the Vault gold aesthetic.
Data Source Modes:
| Mode |
Behavior |
| Auto |
Queries the predictions_picks table for the next pending pick (optionally filtered by sport). Falls back to the most recent pending pick if none are upcoming. If the DB has no picks, falls back to demo data. |
| Manual |
Uses the Home Team, Away Team, Sport, and Kickoff Time you enter directly. |
Controls:
| Control |
Description |
| Data Source |
auto or manual |
| Filter by Sport |
(Auto mode) Show only the next game in this sport |
| Sport Label |
(Manual) e.g. NFL |
| Home Team |
(Manual) |
| Away Team |
(Manual) |
| Kickoff Date/Time |
(Manual) |
| Button Text |
CTA button label (default: Get This Pick) |
| Button URL |
Optional override URL. Auto-links to pick detail or packages page. |
| Fallback URL |
Used when no pick page exists |
Flip Clock: The countdown digits use CSS split-flap animation (@keyframes pvz-flip-top / pvz-flip-bottom) — the top half flips down and the bottom half reveals in sequence, emulating a classic split-flap display. Driven by a JavaScript setInterval that updates digit elements every second.
CSS Classes: .pvz-pcard--upcoming, .pvz-fc-digit, .pvz-fc-half, .pvz-fc-flap
Shortcode equivalent: No shortcode — Elementor widget only.
Upcoming Matchups List
Widget name: pickviz_upcoming_list | Icon: eicon-bullet-list
A vertical list of upcoming fixtures with sport badge, time-until label, matchup, and a CTA button per row. Ideal for showing "what's on the slate today."
Data Source Modes: Same as Upcoming Game Countdown — auto (from DB) or falls back to four hardcoded demo games (NBA, NFL, MLB, UFC).
Controls:
| Control |
Description |
| Source |
auto or manual |
| Number of Games |
1–15 (default 4) |
| Filter by Sport |
e.g. NFL — leave blank for all sports |
| Row Button Text |
Label on each row's CTA button (default: Unlock Picks) |
| Row Button URL |
Override link. Auto-links to picks or packages page. |
Time Labels: Shows LIVE NOW for games in progress, Xh left for same-day games, X days for future games.
CSS Classes: .pvz-pcard--list, .pvz-pcard-rows, .pvz-pcard-row, .pvz-pcard-row-sport, .pvz-pcard-row-time.is-live
Shortcode: [pickviz_upcoming_list source="auto" limit="4" sport="" btn_text="Unlock Picks"]
Latest Pick Card
Widget name: pickviz_latest_pick | Icon: eicon-post-list
Displays the most recent pick as a styled premium card. Shows sport, matchup, pick selection, odds, units, confidence, and a CTA button.
Controls: Source (auto / manual), Sport filter (auto mode), manual override fields for all pick data, Button text, Button URL.
CSS Classes: .pvz-pcard, .pvz-pcard-header, .pvz-pcard-matchup, .pvz-pcard-pick, .pvz-pcard-btn
Winner Pick Card
Widget name: pickviz_winner_pick | Icon: eicon-trophy
Like Latest Pick, but filters for the most recent winning pick specifically. Shown with a winner ribbon accent and gold border treatment.
Controls: Same as Latest Pick Card.
CSS Classes: .pvz-pcard--winner
Timeline
Widget name: pickviz_timeline | Icon: eicon-time-line
A vertical "How It Works" step-by-step timeline. Used for the Process / How It Works section.
Controls: Steps (repeater): Step number, Title, Description, Icon. Style: numbered / icon / dot.
About Split
Widget name: pickviz_about_split | Icon: eicon-image-box
A two-column about section: image on one side, headline + copy + stats on the other.
Controls: Image, Headline, Body text, Stats (repeater: number, label), Button label + URL, Image position (left / right).
Bento Trust
Widget name: pickviz_bento_trust | Icon: eicon-info-box
A bento-box grid of trust/credibility cards. Used for testimonials, stats, and support highlights.
Controls: Cards (repeater): Type (stat / testimonial / support), Icon, Headline, Body, Stat value + label. Grid columns (2 / 3 / auto).
CTA Banner
Widget name: pickviz_cta_banner | Icon: eicon-call-to-action
A full-width promotional banner with headline, subtext, and one or two buttons. Supports gradient and dark background styles.
Controls: Headline, Subtext, Primary button (label + URL), Secondary button (label + URL), Background style (gradient / dark / gold).
FAQ
Widget name: pickviz_faq | Icon: eicon-accordion
An accordion-style FAQ section.
Controls: Items (repeater): Question, Answer. Initial open item, Animation style (slide / fade).
News Cards
Widget name: pickviz_news_cards | Icon: eicon-posts-group
A grid of blog post cards. Pulls from the latest WordPress posts.
Controls: Number of posts, Category filter, Show excerpt toggle, Show date toggle, Show author toggle, Layout (grid-2 / grid-3 / list).
Marquee Stats
Widget name: pickviz_marquee_stats | Icon: eicon-slider-push
A continuously scrolling horizontal stats ticker bar. Used to showcase KPIs in a dynamic way.
Controls: Stats (repeater): Label, Value, Icon. Speed, Direction (left / right), Pause on hover.
Widget name: pickviz_login_form | Icon: eicon-lock-user
Renders a styled WordPress login form that matches the Vault dark aesthetic.
Controls: Redirect URL after login, Show/hide register link, Show/hide forgot password link, Form heading text.
Widget name: pickviz_header | Icon: eicon-header
An all-in-one header widget for use in an Elementor Theme Builder header template. Includes logo, navigation, dark/light toggle, CTA button, and member dashboard link.
Controls: Logo source (custom image / site logo), CTA button label + URL, Dashboard label + URL, Show dark mode toggle, Sticky behavior.
Widget name: pickviz_footer | Icon: eicon-footer
All-in-one footer widget for Elementor Theme Builder footer templates. Includes logo, tagline, social links, trust chips, payment logos, disclaimer, and copyright.
Controls: All content pulled from theme options by default. Controls allow per-instance overrides for tagline, disclaimer, trust chips, newsletter form ID.
Widget name: pickviz_contact_hero | Icon: eicon-form
A contact-page hero with headline, subtext, and an embedded contact form (via shortcode from WPForms or CF7).
Controls: Headline, Subtext, Form shortcode, Background style.
7. Home Page Templates
The theme includes three fully built home page layouts, all based on the same eight-section structure.
Layout Selection
Select the hero variant in the demo importer, or switch hero variants in the Agency Hero widget's Layout control.
| Template |
Hero Style |
Best For |
| Vault Home (Split) |
Two-column split, picks carousel right |
Full-featured premium look |
| Hero 2 (Medallion) |
Centered, bold medallion, large visual focal point |
Brand-first / visual identity |
| Hero 3 (Minimal) |
Pure typographic, ultra-clean |
Performance-focused, minimalist aesthetic |
The three pages share identical sections 02–08; only the hero (section 01) differs.
Section CSS Classes
| Section |
Elementor Section Class |
Purpose |
| Hero (01) |
pvz-hero-section |
Hero with motion effects |
| Game Day (02) |
pvz-gameday vault-fx-grid |
Two-column card grid |
| Membership (03) |
pvz-membership-section |
Tier plaques |
| Process (04) |
pvz-process-section |
Timeline |
| About (05) |
pvz-about-section |
About split |
| Trust (06) |
pvz-trust-section |
Bento trust grid |
| Newsroom (07) |
pvz-newsroom-section |
News cards |
| FAQ (08) |
pvz-faq-section |
Accordion |
Game Day Section Layout
The Game Day section uses a CSS Grid layout applied via the .pvz-gameday class:
/* 2-column layout: picks column 1.4fr left, list/winner right 1fr */
.pvz-gameday .elementor-widget-wrap {
display: grid !important;
grid-template-columns: 1.4fr 1fr;
gap: 24px;
align-items: stretch;
}
/* Widget placement */
.pvz-gameday .elementor-widget-pickviz_section_heading { grid-column: 1 / -1; }
.pvz-gameday .elementor-widget-pickviz_upcoming_game { grid-column: 1; grid-row: 2; }
.pvz-gameday .elementor-widget-pickviz_upcoming_list { grid-column: 1; grid-row: 3; }
.pvz-gameday .elementor-widget-pickviz_latest_pick { grid-column: 2; grid-row: 2; }
.pvz-gameday .elementor-widget-pickviz_winner_pick { grid-column: 2; grid-row: 3; }
8. Page Templates
| Template File |
Assigned Via |
Use |
page.php |
Default |
Standard pages with sidebar (breadcrumbs, title banner) |
template-fullwidth.php |
Page Attributes → Template |
Pages with no sidebar, max-width content |
vault-home.php |
Page Attributes → Template |
Elementor full-canvas home page (no title, no header padding) |
vault-login.php |
Page Attributes → Template |
Branded login page override |
Elementor Theme Builder locations (registered by the theme):
header — full site header
footer — full site footer
single — blog post template
archive — archive/category template
404 — error page
9. CSS Design System
The Vault design system is built entirely on CSS custom properties. Every color, spacing value, and radius used in both the theme and the Elementor widgets resolves to a token. This means:
- Switching from dark to light mode is a single class change on
<html>.
- Switching accent color presets updates the entire site instantly.
- Third-party plugins that use these tokens automatically adapt.
Core Tokens
/* Accent colors */
--vt-accent: /* Primary accent (gold / emerald / crimson / royal) */
--vt-accent-2: /* Gradient second stop */
--vt-accent-text: /* Text on accent backgrounds (#fff or #000) */
/* Backgrounds */
--vt-bg: /* Page background */
--vt-bg-card: /* Card background */
--vt-bg-elevated: /* Elevated surfaces (modals, dropdowns) */
--vt-bg-input: /* Form input background */
/* Text */
--vt-text: /* Primary text */
--vt-text-muted: /* Secondary / muted text */
--vt-text-faint: /* Tertiary / placeholder text */
/* Structure */
--vt-border: /* Border color */
--vt-shadow: /* Box shadow */
--vt-radius: /* Border radius (controlled by `radius` setting) */
--vt-radius-sm: /* Smaller radius variant */
--vt-radius-lg: /* Larger radius variant */
/* Results */
--vt-win: /* Win result color (green) */
--vt-loss: /* Loss result color (red) */
--vt-push: /* Push result color (yellow) */
Plugin Skin Tokens
The PICK VIZ plugin uses its own token set (--pp-*). The theme's plugin-skin.css maps plugin tokens to vault tokens, so plugin cards look identical to the theme:
.predictions-plugin-wrap {
--pp-bg: var(--vt-bg);
--pp-bg-card: var(--vt-bg-card);
--pp-text: var(--vt-text);
--pp-accent: var(--vt-accent);
--pp-border: var(--vt-border);
--pp-radius: var(--vt-radius);
--pp-shadow: var(--vt-shadow);
/* ... */
}
10. JavaScript & Animations
/assets/js/motion.js — The theme's animation engine. Loads after Elementor's front-end scripts.
Features
| Feature |
Trigger |
CSS Classes |
| Scroll Reveal |
IntersectionObserver |
.vault-reveal → .is-visible |
| Count-Up |
Element enters viewport |
[data-countup] |
| Card Shine |
Mouse move over card |
.vault-card → CSS vars --mx, --my |
| Card Tilt |
Mouse move over card |
.vault-tilt → CSS transform: perspective(...) |
| Magnetic Buttons |
Mouse proximity |
.vault-magnetic |
| Smooth Scroll |
Click on [href^="#"] |
Anchors |
| Scroll-to-Top |
Appears after 300px |
#vault-scroll-top |
| Preloader |
Page load |
#vault-preloader fades out |
| Particle Background |
On init |
#vault-particles canvas |
| Custom Cursor Dot |
Mouse move |
#vault-cursor-dot |
| Dark/Light Toggle |
Click |
html.vault-dark ↔ html.vault-light |
All features check window.matchMedia('(prefers-reduced-motion: reduce)') and skip animations accordingly.
The flip-clock animation lives in pickviz-el.css (Elementor plugin assets):
// Simplified timer driver
setInterval(() => {
const diff = targetTime - Date.now();
updateDigit('.pvz-fc-days', Math.floor(diff / 86400000));
updateDigit('.pvz-fc-hours', Math.floor((diff % 86400000) / 3600000));
updateDigit('.pvz-fc-minutes', Math.floor((diff % 3600000) / 60000));
updateDigit('.pvz-fc-seconds', Math.floor((diff % 60000) / 1000));
}, 1000);
Each updateDigit() call sets the digit value, triggers pvz-fc-flap-top keyframe (current digit folds away), then reveals the new digit below.
11. WooCommerce Styling
When WooCommerce is active, the theme applies custom styling via woocommerce.css and inc/woocommerce.php.
Checkout Page
The theme styles the WooCommerce block checkout to match the Vault dark aesthetic:
- Two-column layout:
.wc-block-components-sidebar-layout gets a display: grid; grid-template-columns: 1fr 360px on desktop.
- Sticky order summary: The sidebar scrolls independently while the form is filled.
- Input fields: Vault-styled dark inputs with
--vt-bg-input background, --vt-border border.
- Payment section: Background and select element overrides.
- Full-width on narrow layouts:
@media (max-width: 780px) stacks to single column.
Product Pages
- Product title uses Saira heading styles.
- Add-to-cart button inherits the Vault button style (controlled by
button_style option).
- Product price uses accent color token.
12. Plugin Skin Bridge
When Override Plugin Skin is enabled (use_plugin_themes = 0), the theme takes control of all PICK VIZ plugin output:
plugin-skin.css is loaded on the front end.
- It maps all
--pp-* plugin tokens to --vt-* vault tokens.
- It overrides plugin layout defaults with the settings from
picks_layout and picks_card_theme.
- The picks grid appears identical to the Vault's own card styling, with full dark/light mode and accent color support.
To revert to the plugin's own themes and let users switch themes using the dot-switcher, set Override Plugin Skin to 1 (Use plugin's own themes).
13. Works With: PICK VIZ Plugin
The Vault theme and Elementor widgets are designed to work alongside the PICK VIZ Plugin (sold separately or bundled). When both are active:
| Feature |
Requires Plugin |
| Agency Hero — live pick card |
Yes |
| Latest Pick Card widget |
Yes (falls back to demo data if absent) |
| Winner Pick Card widget |
Yes (falls back to demo data) |
| Upcoming Game Countdown |
Yes (falls back to demo data) |
| Upcoming Matchups List |
Yes (falls back to demo data) |
| Picks Grid widget |
Yes |
| Picks Carousel widget |
Yes |
| Live Record widget |
Yes |
| Capper Podium widget |
Yes |
| Tier Plaques — auto from packages |
Yes |
| Live Ticker — picks source |
Yes |
| Plugin Skin Bridge |
Yes |
Without the plugin: All widgets that pull live data gracefully fall back to styled demo content. The theme and Elementor widgets remain fully functional for layout, design, and static content purposes.
→ See the PICK VIZ Plugin Documentation for installation, shortcodes, and configuration of the picks platform.
| Widget |
Slug |
Shortcode Available |
| Agency Hero |
pickviz_agency_hero |
— |
| Section Heading |
pickviz_section_heading |
— |
| Picks Grid |
pickviz_picks_grid |
[predictions_picks] |
| Picks Carousel |
pickviz_picks_carousel |
— |
| Games Carousel |
pickviz_games_carousel |
— |
| Live Record |
pickviz_live_record |
[predictions_roi] |
| VIP Tier Plaques |
pickviz_tier_plaques |
[predictions_packages] |
| Capper Podium |
pickviz_capper_podium |
— |
| Kickoff Countdown |
pickviz_kickoff_countdown |
— |
| Upcoming Game Countdown |
pickviz_upcoming_game |
— |
| Upcoming Matchups List |
pickviz_upcoming_list |
[pickviz_upcoming_list] |
| Latest Pick Card |
pickviz_latest_pick |
— |
| Winner Pick Card |
pickviz_winner_pick |
— |
| Timeline |
pickviz_timeline |
— |
| About Split |
pickviz_about_split |
— |
| Bento Trust |
pickviz_bento_trust |
— |
| CTA Banner |
pickviz_cta_banner |
— |
| FAQ |
pickviz_faq |
— |
| News Cards |
pickviz_news_cards |
— |
| Marquee Stats |
pickviz_marquee_stats |
— |
| Login Form |
pickviz_login_form |
— |
| Header |
pickviz_header |
— |
| Footer |
pickviz_footer |
— |
| Contact Hero |
pickviz_contact_hero |
— |
PICK VIZ Vault Theme & Elementor Widgets · v2.5+ · Documentation generated July 2026
For support, feature requests, or bug reports please contact the development team.