/** * Job Proof Demo paid LP — seed, detection, enqueue helpers. * * @package JCP_Core */ if ( ! defined( 'ABSPATH' ) ) { exit; } define( 'JCP_JOB_PROOF_DEMO_SLUG', 'job-proof-demo' ); define( 'JCP_JOB_PROOF_DEMO_VARIANT', 'job_proof_demo' ); define( 'JCP_JOB_PROOF_DEMO_SEED_VERSION', '1' ); /** * Whether the current request is the job-proof-demo LP. */ function jcp_job_proof_demo_is_current(): bool { if ( ! is_singular( 'page' ) ) { return false; } $post = get_queried_object(); if ( ! $post instanceof WP_Post ) { return false; } if ( (string) $post->post_name === JCP_JOB_PROOF_DEMO_SLUG ) { return true; } $tpl = (string) get_page_template_slug( (int) $post->ID ); return $tpl === 'page-job-proof-demo.php'; } /** * Create / repair the locked WP page for /job-proof-demo/. */ function jcp_job_proof_demo_maybe_seed(): void { if ( is_admin() && ! wp_doing_cron() ) { // Allow editors to trigger via normal front requests only; still run on init for prod. } $ver = (string) get_option( 'jcp_job_proof_demo_seed_version', '' ); $page = get_page_by_path( JCP_JOB_PROOF_DEMO_SLUG ); if ( $page instanceof WP_Post && $ver === JCP_JOB_PROOF_DEMO_SEED_VERSION ) { $tpl = (string) get_page_template_slug( (int) $page->ID ); if ( $tpl !== 'page-job-proof-demo.php' ) { update_post_meta( (int) $page->ID, '_wp_page_template', 'page-job-proof-demo.php' ); } return; } $postarr = [ 'post_title' => 'Job Proof Demo', 'post_name' => JCP_JOB_PROOF_DEMO_SLUG, 'post_status' => 'publish', 'post_type' => 'page', 'post_content' => '', 'post_excerpt' => 'See how one finished job becomes marketing proof — no signup required.', ]; if ( $page instanceof WP_Post ) { $postarr['ID'] = (int) $page->ID; $post_id = wp_update_post( $postarr, true ); } else { $post_id = wp_insert_post( $postarr, true ); } if ( is_wp_error( $post_id ) || ! $post_id ) { return; } update_post_meta( (int) $post_id, '_wp_page_template', 'page-job-proof-demo.php' ); update_post_meta( (int) $post_id, '_jcp_campaign_variant', JCP_JOB_PROOF_DEMO_VARIANT ); update_post_meta( (int) $post_id, '_yoast_wpseo_meta-robots-noindex', '1' ); update_option( 'jcp_job_proof_demo_seed_version', JCP_JOB_PROOF_DEMO_SEED_VERSION, false ); } add_action( 'init', 'jcp_job_proof_demo_maybe_seed', 26 ); /** * noindex for paid LP. */ function jcp_job_proof_demo_noindex(): void { if ( ! jcp_job_proof_demo_is_current() ) { return; } echo '' . "\n"; } add_action( 'wp_head', 'jcp_job_proof_demo_noindex', 1 ); /** * Stamp lp_variant on document for attribution JS. */ function jcp_job_proof_demo_variant_bootstrap(): void { if ( ! jcp_job_proof_demo_is_current() ) { return; } $v = esc_js( JCP_JOB_PROOF_DEMO_VARIANT ); echo '' . "\n"; } add_action( 'wp_head', 'jcp_job_proof_demo_variant_bootstrap', 2 ); /** * Campaign image base URL. */ function jcp_job_proof_demo_asset_url( string $file ): string { return trailingslashit( get_template_directory_uri() ) . 'assets/campaign/' . ltrim( $file, '/' ); } Features - JobCapturePro
JobCapturePro

Turn every finished job into proof, visibility, reviews, and more calls

JobCapturePro helps contractors turn real field work into online proof customers can see before they call. One completed job can become website content, Google activity, social proof, review opportunities, and trust-building assets that help homeowners choose you.

Start Free Trial No credit card · Free trial · Setup in under 10 minutes
See how it works

Your completed jobs are already your best marketing assets

Every finished job has the proof homeowners want to see: photos, service details, location context, customer experience, and real work completed in the field. JobCapturePro automatically turns that proof into online assets, so your business looks active, trusted, and easy to choose.

THE PROBLEM

  • Most completed jobs disappear after the invoice is sent. Photos stay in phones, proof stays hidden, Google profiles go quiet, review requests get missed, and your website never shows how much work your team is actually doing.

The JobCapturePro fix

JobCapturePro turns each job into proof, content, Google activity, social posts, review opportunities, directory visibility, and local SEO insights — without adding more posting, follow-up, or admin work for your crew.

    The result: every finished job creates more proof, more trust, and more confidence for the next customer ready to call.

    Core JobCapturePro features

    Each feature helps your completed jobs create more trust, visibility, and follow-up opportunities.

    01

    Local Visibility

    • Keep your Google Business Profile, website, and service-area presence active with fresh proof and real local visibility from real jobs in the field.
    02

    Consistent Presence

    • Increase your online consistent presence. Turn job check-ins into website content, Google updates, social posts, and directory activity without manual posting.
    03

    More Reviews

    • Get more reviews by QR code, SMS, email, or connected CRM workflow while the job is still fresh.
    04

    More Calls

    • Get more calls and build more confidence before the call by showing recent work, stronger reviews, active profiles, and proof your company is working nearby.
    05

    Easy Setup & Integrations

    • Use the mobile app, WordPress plugin, and connected workflows to turn job activity into marketing assets without changing how your crew works.
    06

    Directory Presence

    • Having a directory presence gives your company another place to showcase real completed jobs, service areas, and project examples homeowners can find outside your website.

    See how JobCapturePro turns one finished job into growth assets

    From proof and Google activity to website content, review opportunities, social posts, and more calls, JobCapturePro helps every completed job work harder for your business.

    Start Free Trial

    No credit card required. Setup in under 10 minutes.