Home / Docs
Documentation

Everything you need to run PICK VIZ

Full docs for the plugin and the Vault theme — pick a product, then search any topic.

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

  1. Product Overview
  2. Requirements & Installation
  3. Free vs Pro Features
  4. Database Schema
  5. Admin Panel
  6. Pick Management
  7. Membership & Packages
  8. Payment Processing
  9. Capper Dashboard
  10. Live Scores & Auto-Grading
  11. Analytics & ROI
  12. Email Notifications
  13. Affiliate Program
  14. Shortcodes Reference
  15. Card Themes & Visual Styles
  16. Pick Display Filters
  17. WooCommerce Integration
  18. Privacy & GDPR
  19. API Reference
  20. 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

  1. Upload the predictionsplugin folder to /wp-content/plugins/ via FTP, or use Plugins → Add New → Upload Plugin in wp-admin.
  2. Activate the plugin under Plugins → Installed Plugins.
  3. On first activation the plugin automatically creates all required database tables.
  4. 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)
  5. 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:

  1. Plugin licensing (this section, below) — what you, the site owner, get depending on whether your own PICK VIZ license is Free Core or Pro.
  2. 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

  1. Go to PICK VIZ → Add Pick.
  2. Fill in all required fields (sport, teams, game date, pick on, odds, units, confidence, visibility).
  3. Add analysis notes and optional attachment.
  4. Set Scheduled At if you want the pick hidden until a future time (useful for members who pay for early access).
  5. Click Save Pick.

The pick immediately appears in the picks feed (or at the scheduled time if delayed).

Grading Results

Manual grading:

  1. Find the pick in PICK VIZ → Picks List.
  2. Click Edit → set Result (win / loss / push / void) → optionally enter the final score → Save.

Bulk grading:

  1. Check the picks you want to grade.
  2. Choose Grade as Win (or Loss / Push / Void) from the Bulk Actions dropdown.
  3. 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

  1. Create a Stripe account at stripe.com.
  2. Create a Product and one or more Prices (recurring or one-time) in the Stripe Dashboard.
  3. Copy each Price ID (e.g. price_1QxxxxxABC) into the corresponding package in PICK VIZ → Packages.
  4. 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)
  5. 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

  1. Create a PayPal Developer app at developer.paypal.com.
  2. Create a Subscription Plan for each package.
  3. Copy each Plan ID into the corresponding package.
  4. In PICK VIZ → Settings → Payments, enter Client ID and Client Secret.
  5. 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:

  1. Assign the WordPress "Capper" role to the user (or use PICK VIZ → Members → set role).
  2. Create a page and add [predictions_capper_dashboard] to it.
  3. 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

  1. A WordPress cron job runs every 30 minutes.
  2. It queries the score API for results of games matching pending picks.
  3. 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.
  4. 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

Performance Scoring

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:

  1. Enable affiliates in PICK VIZ → Settings → Affiliate.
  2. Set commission rate (percentage of subscription amount).
  3. Users can request affiliate links from their My Account page.
  4. 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

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)

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

  1. Each PICK VIZ Package can be linked to a WooCommerce Product.
  2. When a customer checks out via WooCommerce, the subscription is automatically activated in PICK VIZ.
  3. 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.

PICK VIZ Vault Theme & Elementor Widgets

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

  1. Product Overview
  2. Requirements & Installation
  3. Theme Architecture
  4. One-Click Demo Import
  5. Theme Options Panel
  6. 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
  7. Home Page Templates
  8. Page Templates
  9. CSS Design System
  10. JavaScript & Animations
  11. WooCommerce Styling
  12. Plugin Skin Bridge
  13. 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:

  1. Go to Appearance → Themes → Add New → Upload Theme.
  2. Upload pickviz-vault.zip.
  3. Activate.

Elementor Widgets:

  1. Go to Plugins → Add New → Upload Plugin.
  2. Upload pickviz-elementor.zip.
  3. 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

  1. Go to Appearance → Vault → Demo Import.
  2. Choose your hero style.
  3. 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:

  1. PICK VIZ Plugin picks: upcoming pending picks are automatically inserted.
  2. API Fixtures (when ticker_api_enable = 1): live game schedule from the configured score API.
  3. 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)

6. Elementor Widget Library

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.


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.


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.


Login Form

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.


Header (Elementor)

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.


Contact Hero

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-darkhtml.vault-light

All features check window.matchMedia('(prefers-reduced-motion: reduce)') and skip animations accordingly.

Flip Clock (Countdown Widget)

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:

  1. plugin-skin.css is loaded on the front end.
  2. It maps all --pp-* plugin tokens to --vt-* vault tokens.
  3. It overrides plugin layout defaults with the settings from picks_layout and picks_card_theme.
  4. 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.


Elementor Widget Quick Reference

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.