Hero
A conversion-focused introduction with premium visual weight and immediate calls to action.
[ 'label' => 'Discovery Call', 'code' => '01', 'summary' => 'A low-friction first step for visitors who want to explore fit, goals, and next steps before committing.', 'bullets' => ['30 minutes', 'Ideal first conversation', 'Best for fit and direction'], ], 'clarity-session' => [ 'label' => 'Clarity Session', 'code' => '02', 'summary' => 'A focused deep-dive session for transitions, decisions, leadership tension, and getting unstuck quickly.', 'bullets' => ['90-minute intensive', 'Decision support', 'Action summary included'], ], 'momentum-coaching' => [ 'label' => 'Momentum Coaching', 'code' => '03', 'summary' => 'Ongoing coaching for clients who need accountability, calm execution, and stronger follow-through over time.', 'bullets' => ['Ongoing 1:1 rhythm', 'Reflection between sessions', 'Built for durable progress'], ], 'leadership-intensive' => [ 'label' => 'Leadership Intensive', 'code' => '04', 'summary' => 'A premium strategy container for founders, executives, and senior leaders navigating a high-stakes season.', 'bullets' => ['Executive-level support', 'Complex challenges welcome', 'Clear implementation path'], ], ]; } function coaching_mvp_services() { $services = []; foreach (coaching_mvp_service_catalog() as $slug => $service) { $services[$slug] = $service['label']; } return $services; } function coaching_mvp_register_post_types() { register_post_type('testimonial', [ 'labels' => [ 'name' => 'Testimonials', 'singular_name' => 'Testimonial', 'add_new_item' => 'Add New Testimonial', 'edit_item' => 'Edit Testimonial', ], 'public' => true, 'show_in_rest' => true, 'menu_icon' => 'dashicons-format-quote', 'supports' => ['title', 'editor', 'excerpt', 'page-attributes'], 'has_archive' => false, 'rewrite' => ['slug' => 'testimonial'], ]); register_post_type('booking_request', [ 'labels' => [ 'name' => 'Bookings', 'singular_name' => 'Booking', 'add_new_item' => 'Add Booking', 'edit_item' => 'View Booking', ], 'public' => false, 'show_ui' => true, 'show_in_rest' => false, 'menu_icon' => 'dashicons-calendar-alt', 'supports' => ['title'], 'capability_type' => 'post', 'map_meta_cap' => true, ]); register_post_type('lead_capture', [ 'labels' => [ 'name' => 'Leads', 'singular_name' => 'Lead', 'add_new_item' => 'Add Lead', 'edit_item' => 'View Lead', ], 'public' => false, 'show_ui' => true, 'show_in_rest' => false, 'menu_icon' => 'dashicons-email-alt2', 'supports' => ['title'], 'capability_type' => 'post', 'map_meta_cap' => true, ]); } add_action('init', 'coaching_mvp_register_post_types'); function coaching_mvp_body_class($classes) { $classes[] = 'coaching-mvp-active'; return $classes; } add_filter('body_class', 'coaching_mvp_body_class'); function coaching_mvp_styles() { if (is_admin()) { return; } wp_register_style('coaching-mvp-inline', false, [], null); wp_enqueue_style('coaching-mvp-inline'); $css = <<<'CSS' :root { --coach-primary: #5468ff; --coach-secondary: #13c7b8; --coach-accent: #d7b267; --coach-background: #f6f4ef; --coach-surface: #ffffff; --coach-surface-soft: rgba(255,255,255,.72); --coach-text: #142033; --coach-muted: #667085; --coach-deep: #0d1530; --coach-deeper: #091022; --coach-border: rgba(20,32,51,.09); --coach-shadow: 0 30px 80px rgba(15,23,42,.12); --coach-shadow-lg: 0 50px 120px rgba(8,15,34,.22); --coach-radius: 28px; --coach-radius-sm: 18px; --coach-spacing: 1.5rem; } body.coaching-mvp-active { background: radial-gradient(circle at top left, rgba(84,104,255,.10), transparent 28%), radial-gradient(circle at top right, rgba(215,178,103,.12), transparent 26%), linear-gradient(180deg, #f1f5ff 0%, #faf8f4 38%, #ffffff 100%); color: var(--coach-text); } body.coaching-mvp-active .wp-site-blocks, body.coaching-mvp-active .site, body.coaching-mvp-active main { color: var(--coach-text); } body.coaching-mvp-active.page .wp-site-blocks main, body.coaching-mvp-active.home .wp-site-blocks main, body.coaching-mvp-active.blog .wp-site-blocks main, body.coaching-mvp-active.single-post .wp-site-blocks main { --wp--style--global--content-size: min(1220px, calc(100vw - 40px)); --wp--style--global--wide-size: min(1380px, calc(100vw - 40px)); } body.coaching-mvp-active .wp-block-post-content, body.coaching-mvp-active .wp-block-query, body.coaching-mvp-active .wp-block-group { width: 100%; } body.coaching-mvp-active .wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)), body.coaching-mvp-active .coach-home-page.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: var(--wp--style--global--content-size); } body.coaching-mvp-active header.wp-block-template-part { position: sticky; top: 0; z-index: 30; backdrop-filter: blur(18px); background: rgba(255,255,255,.78); border-bottom: 1px solid rgba(20,32,51,.06); } body.coaching-mvp-active .wp-block-site-title a, body.coaching-mvp-active .wp-block-navigation a, body.coaching-mvp-active .wp-block-navigation-item__content { color: var(--coach-text); text-decoration: none; } body.coaching-mvp-active .wp-block-navigation .wp-block-navigation-item__content { font-weight: 600; } body.coaching-mvp-active .wp-block-navigation .current-menu-item > a, body.coaching-mvp-active .wp-block-navigation .current_page_item > a { color: var(--coach-primary); } body.coaching-mvp-active .wp-block-button__link { border-radius: 999px; padding: .95rem 1.4rem; font-weight: 700; text-decoration: none; box-shadow: none; } body.coaching-mvp-active .wp-block-button.is-style-outline > .wp-block-button__link { border-radius: 999px; } body.coaching-mvp-active .wp-block-post-title, body.coaching-mvp-active h1, body.coaching-mvp-active h2, body.coaching-mvp-active h3, body.coaching-mvp-active h4 { letter-spacing: -.03em; } .coach-home-page .wp-block-post-title, .page-slug-home .wp-block-post-title { display: none; } .coach-shell, .coach-hero, .coach-section, .coach-panel, .coach-form-wrap, .coach-service-card, .coach-testimonial-card, .coach-stat, .coach-process-card, .coach-mini-card, .coach-faq-card, .coach-story-card, .coach-system-card, .coach-blog-card, .coach-quote-card, .coach-visual-card { border-radius: var(--coach-radius); } .coach-shell > * + * { margin-top: clamp(1.5rem, 3vw, 2.5rem); } .coach-section { margin-top: clamp(1.7rem, 4vw, 3rem); } .coach-hero { position: relative; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); background: radial-gradient(circle at top right, rgba(215,178,103,.28), transparent 25%), radial-gradient(circle at left center, rgba(19,199,184,.18), transparent 30%), linear-gradient(135deg, #091022 0%, #15254c 45%, #293f7c 75%, #5468ff 100%); box-shadow: var(--coach-shadow-lg); } .coach-hero::before { content: ""; position: absolute; inset: auto -10% -25% 45%; height: 360px; background: radial-gradient(circle, rgba(255,255,255,.16), transparent 60%); pointer-events: none; } .coach-hero h1, .coach-hero h2, .coach-hero p, .coach-hero li, .coach-hero strong, .coach-hero .coach-quote-card { color: #fff; } .coach-hero .wp-block-buttons .wp-block-button__link, .coach-cta-row .wp-block-button__link, .coach-form-wrap button, .coach-inline-link { border-radius: 999px; padding: .95rem 1.4rem; font-weight: 700; text-decoration: none; } .coach-eyebrow { display: inline-flex; align-items: center; gap: .5rem; padding: .48rem .92rem; border-radius: 999px; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.18); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; } .coach-badge { display: inline-flex; align-items: center; gap: .45rem; padding: .42rem .8rem; border-radius: 999px; background: rgba(84,104,255,.10); color: var(--coach-primary); font-size: .84rem; font-weight: 800; } .coach-badge.dark { background: rgba(255,255,255,.12); color: #fff; } .coach-grid-2, .coach-grid-3, .coach-grid-4, .coach-card-grid, .coach-testimonial-grid, .coach-process-grid, .coach-story-grid, .coach-faq-grid, .coach-stats-grid, .coach-mini-grid, .coach-system-grid, .coach-blog-grid, .coach-visual-grid, .coach-booking-layout { display: grid; gap: 1.2rem; } .coach-grid-2, .coach-booking-layout { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } .coach-grid-3, .coach-card-grid, .coach-testimonial-grid, .coach-process-grid, .coach-story-grid, .coach-faq-grid, .coach-mini-grid, .coach-system-grid, .coach-blog-grid, .coach-visual-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .coach-grid-4, .coach-stats-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); } .coach-panel, .coach-service-card, .coach-testimonial-card, .coach-stat, .coach-process-card, .coach-mini-card, .coach-faq-card, .coach-story-card, .coach-form-wrap, .coach-system-card, .coach-blog-card, .coach-quote-card, .coach-visual-card { background: rgba(255,255,255,.92); border: 1px solid var(--coach-border); box-shadow: var(--coach-shadow); padding: 1.35rem; } .coach-panel.soft, .coach-quote-card, .coach-visual-card.dark { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.16); box-shadow: none; } .coach-quote-card { color: #fff; } .coach-visual-card { min-height: 140px; } .coach-visual-card h3, .coach-visual-card p { color: #fff; } .coach-hero-shell { position: relative; z-index: 1; } .coach-system-card h3, .coach-service-card h3, .coach-process-card h3, .coach-faq-card h3, .coach-story-card h3, .coach-testimonial-card h3, .coach-mini-card h3, .coach-blog-card h3 { margin-top: .35rem; margin-bottom: .6rem; } .coach-stat strong { display: block; font-size: clamp(1.4rem, 3vw, 2.15rem); color: var(--coach-text); } .coach-stat span, .coach-muted, .coach-service-card p, .coach-process-card p, .coach-faq-card p, .coach-story-card p, .coach-system-card p, .coach-blog-card p, .coach-testimonial-meta, .coach-form-wrap p, .coach-section p, .coach-quote-card p, .coach-mini-card p { color: var(--coach-muted); } .coach-hero .coach-panel p, .coach-hero .coach-quote-card p, .coach-hero .coach-visual-card p, .coach-hero .coach-badge.dark + h3 + p { color: rgba(255,255,255,.82); } .coach-service-card ul, .coach-process-card ul, .coach-story-card ul, .coach-system-card ul { margin: .8rem 0 0 1rem; } .coach-icon-dot { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: rgba(84,104,255,.11); color: var(--coach-primary); font-weight: 800; } .coach-form-wrap { padding: 1.55rem; background: rgba(255,255,255,.96); } .coach-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; } .coach-form-grid .full { grid-column: 1 / -1; } .coach-form-wrap label { display: block; font-weight: 700; margin-bottom: .4rem; color: var(--coach-text); } .coach-form-wrap input, .coach-form-wrap textarea, .coach-form-wrap select { width: 100%; border: 1px solid rgba(20,32,51,.12); border-radius: 16px; padding: .9rem 1rem; font-size: 1rem; background: #fff; color: var(--coach-text); } .coach-form-wrap textarea { min-height: 140px; } .coach-form-wrap button { border: 0; background: linear-gradient(135deg, var(--coach-primary), #7f56d9); color: #fff; cursor: pointer; box-shadow: 0 18px 30px rgba(84,104,255,.24); } .coach-alert { border-radius: 16px; padding: .95rem 1rem; margin-bottom: 1rem; font-weight: 600; } .coach-alert.success { background: rgba(19,199,184,.12); color: #0e7067; border: 1px solid rgba(19,199,184,.2); } .coach-alert.error { background: rgba(255,107,129,.10); color: #8d2d3b; border: 1px solid rgba(255,107,129,.18); } .coach-testimonial-grid blockquote { margin: 0; } .coach-testimonial-card .coach-rating { color: #f5a524; letter-spacing: .18em; font-size: .95rem; margin-bottom: .7rem; } .coach-cta-band { padding: 1.6rem; background: linear-gradient(135deg, rgba(84,104,255,.10), rgba(19,199,184,.10)), #fff; border: 1px solid rgba(84,104,255,.12); border-radius: var(--coach-radius); box-shadow: var(--coach-shadow); } .coach-stack > * + * { margin-top: 1rem; } .coach-inline-link { display: inline-flex; align-items: center; justify-content: center; color: var(--coach-primary); background: rgba(84,104,255,.08); } .coach-admin-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: .5rem; color: var(--coach-primary); text-decoration: none; font-weight: 700; } .coach-footer-note { text-align: center; color: var(--coach-muted); font-size: .95rem; margin-top: 2rem; } .coach-blog-card a, .coach-blog-card .wp-block-post-excerpt__more-link, .wp-block-post-excerpt__more-link, .wp-block-read-more { color: var(--coach-primary); font-weight: 700; text-decoration: none; } body.coaching-mvp-active .wp-block-post-template { gap: 1.2rem; } body.coaching-mvp-active .wp-block-post-template > li, body.coaching-mvp-active .wp-block-post { border-radius: var(--coach-radius); background: rgba(255,255,255,.94); border: 1px solid var(--coach-border); box-shadow: var(--coach-shadow); padding: 1.25rem; } body.coaching-mvp-active .wp-block-post-featured-image img { border-radius: 18px; } body.coaching-mvp-active .wp-block-query-title, body.coaching-mvp-active .wp-block-post-title a { color: var(--coach-text); text-decoration: none; } body.coaching-mvp-active .wp-block-query-pagination { margin-top: 1.2rem; } body.coaching-mvp-active .wp-block-query-pagination a { color: var(--coach-primary); text-decoration: none; } @media (max-width: 781px) { .coach-hero { padding: 1.5rem; } body.coaching-mvp-active header.wp-block-template-part { position: static; } } CSS; wp_add_inline_style('coaching-mvp-inline', $css); } add_action('wp_enqueue_scripts', 'coaching_mvp_styles'); function coaching_mvp_home_content() { return <<<'HTML'
Premium Coaching Template • Booking-first architecture
This starter is built to feel like a paid template: strong hero, real booking flow, editable services, dynamic testimonials, simple WordPress blog, and lead capture already wired into the conversion path.
Replace the story, offer names, testimonials, and palette later — keep the expensive-looking structure now.
Requests are stored in WordPress admin for manual follow-up.
Homepage and testimonials page both pull from the same content type.
WordPress posts are already positioned as the lightweight content layer.
Template systems
These sections are the reusable operating system for future coaching sites. Each one can be re-skinned later without replacing the UX architecture.
A conversion-focused introduction with premium visual weight and immediate calls to action.
Dedicated booking page, structured intake fields, and saved requests in admin.
Offer cards, positioning language, and a page built to support higher-ticket decisions.
Dynamic proof system powered by a custom content type instead of hard-coded copy.
Credibility, method, philosophy, and founder-story space for trust building.
Simple WordPress core blog kept intentionally clean for easy long-term maintenance.
Secondary conversion path for visitors who need a conversation before booking.
Services snapshot
Future AI runs can swap labels, bullets, target audience, and package names without changing structure.
The layout supports discovery calls, intensives, retainers, and niche-specific coaching products.
Every service block naturally points visitors toward booking or inquiry.
This template assumes booking is the main action. The homepage, services page, and trust sections all support that path without making the experience feel salesy.
Visitors self-select an offer that fits their current stage or challenge.
Date, time, format, and goals are captured without the complexity of a heavy external scheduler.
Admin review keeps this starter flexible until a future model replaces it with Calendly or another integration.
About foundation
Later AI models can replace this copy with a real coach story, niche differentiators, credentials, and personal philosophy — while keeping the premium page rhythm intact.
Space for experience, results, and approach without sounding inflated or generic.
Explain how sessions work, what changes for clients, and why the process feels different.
Blend empathy, structure, and confidence — the three signals high-value coaching pages need most.
Testimonials system
Blog preview
The lead form is the secondary path for visitors who need a question answered, want help choosing an offer, or simply prefer a lower-commitment start.
Coaching services
This page is the reusable offer layer of the template: clear service cards, premium positioning, and enough structure for future AI customization without page rebuilding.
[coaching_services limit="4"]These cards work equally well for executive coaching, mindset coaching, business coaching, career transition work, and niche-specific premium offers.
Each service helps visitors self-select the right level of support, then move directly into booking or lead capture.
Use one service for discovery, one for depth, one for continuity, and one for premium escalation.
Premium service pages make the experience feel contained, specific, and safe to say yes to.
All roads should lead to booking or contact — not to dead-end informational copy.
Use the booking page if the service structure is already clear, or the contact page if you want a softer first step.
Testimonials system
This page is powered by a dedicated Testimonials content type in WordPress. Replace sample quotes later, and both this page and the homepage will update automatically.
[coaching_testimonials limit="6"]Add, remove, or reorder testimonials in WordPress without changing page content.
Use role labels to add context like founder, executive, creative leader, or high-performance client.
The same testimonial source powers key proof moments across the site.
Add new testimonials in the WordPress admin and they will automatically appear here.
About the coach
This page is the trust layer of the template. It is designed to hold founder story, method, philosophy, credentials, and emotional reassurance without becoming cluttered.
Use this area for the coach’s turning point, philosophy, client promise, or the problem they are uniquely good at helping solve.
Clarity before noise. Direction before pressure. Action without performative hustle.
Space for credentials, lived experience, certifications, or industry-specific credibility.
Explain how sessions feel: direct, calm, strategic, supportive, practical, or deeply reflective.
The coach should feel perceptive, not generic.
Move from emotional fog or strategic overload into an honest next path.
Ground ideas into behavior, decisions, rhythm, and follow-through.
Point them to services, booking, or testimonials so the about page supports conversion instead of acting like a dead end.
Booking system
This template uses a pay-later booking request flow. It is intentionally simple, lightweight, and easy to replace later with Calendly or another scheduling tool.
The coach reviews the request inside WordPress, then follows up manually to confirm fit, timing, and session details.
It delivers a real booking system now without locking the starter into one external platform or workflow.
Every request is stored in a dedicated Bookings section in the dashboard.
Calendly embed, Stripe-powered paid session flow, confirmation emails, or service-specific funnels.
Lead capture
This page is the secondary conversion path. It captures thoughtful leads who need clarity, have questions, or want a recommendation before choosing an offer.
Service selection questions, founder introductions, budget-fit conversations, or slower trust-building journeys.
Not every premium buyer wants to jump straight into a booking flow on the first visit.
CRM sync, email automation, lead scoring, or a niche-specific qualification form.
Pick the service, preferred date, and format. This template stores requests in WordPress so the coach can confirm details personally.
Not ready to book yet? Share your focus area and the coach can follow up with the right next step.
' . esc_html($service['summary']) . '
'; echo 'No testimonials yet.
'; } ob_start(); echo ''; echo '' . esc_html(wp_strip_all_tags($item->post_content)) . '
No blog posts yet.
'; } ob_start(); echo '' . esc_html(wp_trim_words(wp_strip_all_tags($item->post_content), 26)) . '
'; echo 'Read article →'; echo 'Example: Founder, Sample Client
'; } function coaching_mvp_save_testimonial_meta($post_id) { if (!isset($_POST['coaching_testimonial_meta_nonce']) || !wp_verify_nonce(wp_unslash($_POST['coaching_testimonial_meta_nonce']), 'coaching_testimonial_meta')) { return; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if (isset($_POST['coaching_testimonial_role'])) { update_post_meta($post_id, '_testimonial_role', sanitize_text_field(wp_unslash($_POST['coaching_testimonial_role']))); } } add_action('save_post_testimonial', 'coaching_mvp_save_testimonial_meta'); function coaching_mvp_current_request_origin() { if (defined('WP_CLI') && WP_CLI) { return null; } $host = ''; if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) { $parts = explode(',', (string) $_SERVER['HTTP_X_FORWARDED_HOST']); $host = trim(end($parts)); } elseif (!empty($_SERVER['HTTP_HOST'])) { $host = trim((string) $_SERVER['HTTP_HOST']); } if ($host === '' || preg_match('/[^a-z0-9\-\.:\[\]]/i', $host)) { return null; } $scheme = 'http'; if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])) { $parts = explode(',', (string) $_SERVER['HTTP_X_FORWARDED_PROTO']); $candidate = strtolower(trim(end($parts))); if (in_array($candidate, ['http', 'https'], true)) { $scheme = $candidate; } } elseif (!empty($_SERVER['REQUEST_SCHEME']) && in_array($_SERVER['REQUEST_SCHEME'], ['http', 'https'], true)) { $scheme = $_SERVER['REQUEST_SCHEME']; } elseif (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') { $scheme = 'https'; } return $scheme . '://' . $host; } function coaching_mvp_should_replace_local_host($url) { $host = wp_parse_url($url, PHP_URL_HOST); return in_array($host, ['localhost', '127.0.0.1', '::1'], true); } function coaching_mvp_replace_local_origin($url) { $origin = coaching_mvp_current_request_origin(); if (!$origin || !coaching_mvp_should_replace_local_host($url)) { return $url; } $path = (string) wp_parse_url($url, PHP_URL_PATH); $query = wp_parse_url($url, PHP_URL_QUERY); $fragment = wp_parse_url($url, PHP_URL_FRAGMENT); $rebuilt = rtrim($origin, '/') . $path; if ($query) { $rebuilt .= '?' . $query; } if ($fragment) { $rebuilt .= '#' . $fragment; } return $rebuilt; } function coaching_mvp_filter_option_home($value) { return coaching_mvp_replace_local_origin((string) $value); } add_filter('option_home', 'coaching_mvp_filter_option_home'); add_filter('option_siteurl', 'coaching_mvp_filter_option_home'); function coaching_mvp_filter_generated_url($url) { return coaching_mvp_replace_local_origin((string) $url); } add_filter('home_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('site_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('content_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('plugins_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('includes_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('rest_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('network_home_url', 'coaching_mvp_filter_generated_url', 10, 1); add_filter('network_site_url', 'coaching_mvp_filter_generated_url', 10, 1); function coaching_mvp_replace_local_origin_in_html($html) { $origin = coaching_mvp_current_request_origin(); if (!$origin || !is_string($html) || $html === '') { return $html; } return str_replace( ['http://localhost', 'https://localhost', 'http://127.0.0.1', 'https://127.0.0.1'], $origin, $html ); } function coaching_mvp_filter_rendered_block_html($block_content) { if (is_admin()) { return $block_content; } return coaching_mvp_replace_local_origin_in_html($block_content); } add_filter('render_block', 'coaching_mvp_filter_rendered_block_html', 10, 1);