';
}
/** Local, bundled examples; no preview request contacts a vendor service. */
private static function examples() {
return array(
'quotes' => array(
'headline' => __( 'Turn a quote request into a priced estimate.', 'killerconversions' ),
'intro' => __( 'Calculate your service price and give each saved enquiry a branded PDF estimate.', 'killerconversions' ),
'short' => __( 'Calculate prices and produce a branded estimate PDF.', 'killerconversions' ),
'image' => 'estimate-preview.png',
'alt' => __( 'Pro estimate PDF with six fictional consulting sessions totalling 580 EUR.', 'killerconversions' ),
'caption' => __( 'Pro PDF example · fictional data', 'killerconversions' ),
'free' => __( 'Collect the details of a quote request, save the enquiry and send ordinary email notifications.', 'killerconversions' ),
'benefits' => array( __( 'Estimate calculations, price tiers and conditional extras.', 'killerconversions' ), __( 'A branded PDF generated from a saved estimate.', 'killerconversions' ), __( 'Keep the calculated result alongside the enquiry.', 'killerconversions' ) ),
'rows' => array( array( __( 'Enquiry forms and basic conditions', 'killerconversions' ), true ), array( __( 'Local entries, CSV and ordinary emails', 'killerconversions' ), true ), array( __( 'Calculated estimates and pricing tiers', 'killerconversions' ), false ), array( __( 'Branded estimate PDFs', 'killerconversions' ), false ) ),
'steps' => array( __( 'Set your prices, tiers and extras.', 'killerconversions' ), __( 'Try representative answers and check the PDF.', 'killerconversions' ), __( 'Publish when ready and review saved estimates.', 'killerconversions' ) ),
'note' => __( 'This is an estimate example, not a payment or tax invoice. The sample PDF uses fictional prices.', 'killerconversions' ),
),
'resume' => array(
'headline' => __( 'Let visitors finish their application later.', 'killerconversions' ),
'intro' => __( 'Visitors choose to save their progress, copy a private link and return when they are ready.', 'killerconversions' ),
'short' => __( 'Let applicants save explicitly and return through a private link.', 'killerconversions' ),
'image' => 'resume-desktop.png',
'alt' => __( 'Pro application with fictional example answers and a Save for later control.', 'killerconversions' ),
'caption' => __( 'Pro application example · fictional data', 'killerconversions' ),
'free' => __( 'Build enquiry forms with basic conditions, keep submitted entries locally and recover your own form-design drafts.', 'killerconversions' ),
'benefits' => array( __( 'Multi-step applications and private file uploads.', 'killerconversions' ), __( 'Explicit visitor save with an encrypted draft.', 'killerconversions' ), __( 'A private continuation link with 1, 3 or 7-day expiry.', 'killerconversions' ) ),
'rows' => array( array( __( 'Enquiry forms and submitted entries', 'killerconversions' ), true ), array( __( 'Administrator form-design drafts', 'killerconversions' ), true ), array( __( 'Multi-step applications and file uploads', 'killerconversions' ), false ), array( __( 'Visitor drafts and private resume links', 'killerconversions' ), false ) ),
'steps' => array( __( 'Choose a draft lifetime of 1, 3 or 7 days.', 'killerconversions' ), __( 'The visitor saves and copies their private link.', 'killerconversions' ), __( 'They return, complete the form and choose consent again.', 'killerconversions' ) ),
'note' => __( 'Anyone with the link can open the draft. Drafts expire from the first save. Visitors must choose to save; incomplete answers are not captured automatically and no draft email is sent. HTTPS and PHP Sodium are required.', 'killerconversions' ),
),
'followup' => array(
'headline' => __( 'Give every enquiry a clear next step.', 'killerconversions' ),
'intro' => __( 'Review enquiries with your team and send selected answers to the tools you deliberately connect.', 'killerconversions' ),
'short' => __( 'Organize team reviews and connect selected answers to your tools.', 'killerconversions' ),
'image' => 'review-desktop.png',
'alt' => __( 'Pro review workflow with fictional stages, due dates, assignees and four example entries.', 'killerconversions' ),
'caption' => __( 'Pro review workspace example · fictional data', 'killerconversions' ),
'free' => __( 'Receive ordinary staff emails, use basic entry assignment and status, and export saved answers to CSV.', 'killerconversions' ),
'benefits' => array( __( 'Custom stages, internal notes and due dates.', 'killerconversions' ), __( 'Scoped staff access and team review workflows.', 'killerconversions' ), __( 'HubSpot, Slack, signed webhooks and conditional routing.', 'killerconversions' ) ),
'rows' => array( array( __( 'Staff email, CSV and basic entry status', 'killerconversions' ), true ), array( __( 'Basic assignment of saved entries', 'killerconversions' ), true ), array( __( 'Custom stages, notes and due dates', 'killerconversions' ), false ), array( __( 'Advanced connections and scoped staff access', 'killerconversions' ), false ) ),
'steps' => array( __( 'Choose the answers and destination for each connection.', 'killerconversions' ), __( 'Review field mapping and staff access before enabling.', 'killerconversions' ), __( 'Use stages, notes and due dates to organize follow-up.', 'killerconversions' ) ),
'note' => __( 'Connections need your setup and credentials. A due date does not send a message automatically. Viewing this example sends nothing.', 'killerconversions' ),
),
);
}
private static function example_image( $id, $small = false ) {
$example = self::examples()[ $id ]; $url = KCONV_URL . 'assets/discovery-examples/' . $example['image'];
echo '' . esc_html__( 'View full size (opens in a new tab)', 'killerconversions' ) . '' . esc_html( $example['caption'] ) . ' · ' . esc_html__( 'View full size', 'killerconversions' ) . ' ' . esc_html__( '(opens in a new tab)', 'killerconversions' ) . '';
}
public static function overview() {
$unlocked = self::pro_ready();
echo '
' . esc_html( $unlocked ? __( 'Put your Pro tools to work.', 'killerconversions' ) : __( 'See what Pro adds to your workflow.', 'killerconversions' ) ) . '
' . esc_html( $unlocked ? __( 'Explore three examples, then configure the tools for your own forms.', 'killerconversions' ) : __( 'Keep building enquiry forms with Free. Explore three ways to handle more involved work.', 'killerconversions' ) ) . '
';
echo '
' . esc_html__( 'Your everyday tools are included in Free', 'killerconversions' ) . '
' . esc_html( 'unlocked' === $state ? __( 'Put this workflow to work', 'killerconversions' ) : __( 'Included with KillerConversions Pro', 'killerconversions' ) ) . '
' . esc_html__( 'Viewing this example changes no form settings, saves no visitor information and sends no messages.', 'killerconversions' ) . '
';
if ( 'mismatch' === $state ) { echo '
' . esc_html__( 'Finish updating the compatible Free and Pro plugins before opening Pro tools. Saved forms and entries are retained.', 'killerconversions' ) . '
'; }
elseif ( 'locked' === $state ) { echo '
' . esc_html__( 'Pro is installed. Activate a valid licence once for this site to unlock its editing and tools.', 'killerconversions' ) . '
' . esc_html__( 'These choices belong to your WordPress account on this site. Other administrators keep their own preferences. Deliberate workflow links remain available.', 'killerconversions' ) . '
';
if ( ! self::pro_ready() ) { echo '
' . esc_html__( 'Keep your workspace the way you like it', 'killerconversions' ) . '
' . esc_html__( 'Hide these shortcuts whenever you like. The examples stay available through Explore Pro.', 'killerconversions' ) . '