Contact Wizard – HVAC Lead Form

Contact Wizard – HVAC replaces your generic contact form with a five-step guided quote wizard tailored to HVAC and mechanical service businesses. Instead of receiving “my AC is broken” with no context, you get structured leads with service type, urgency level, system make/age, reported symptoms, unit locations, and access details – all before the first call. Drop the shortcode on any page — no page builder, no third-party form service, no monthly fee.

The 5-Step Wizard Form

Every step is its own screen. The visitor moves forward only — no scrolling a wall of fields.

  • Step 1 — Service & urgency: What type of service do you need? Checkbox group: AC repair, AC installation / replacement, Heating repair, Furnace / heater installation, Seasonal tune-up / maintenance, Duct cleaning, Thermostat / smart home upgrade, Indoor air quality / filtration (revealed by default), Mini-split / ductless system (revealed by default), Heat pump (revealed by default), Other / not sure. Selecting “Other” reveals a Please describe text field. How urgent is it? radio group: Emergency — system is completely down, Urgent — needs attention within 24 hours, This week, I’m flexible — planning ahead.
  • Step 2 — System details: What type of system do you have? Radio group: Central AC + gas furnace, Central AC + electric heat, Heat pump (heating & cooling), Mini-split / ductless, Window or portable unit, Boiler / radiant heat, Not sure. Approximate age of your system (select: Less than 5 years → Over 20 years, Not sure). What symptoms are you experiencing? Checkbox group: Not cooling / heating, Weak airflow, Strange noises, Bad smell / burning odor, Water or refrigerant leak, Turns on / off too frequently, Unusually high energy bills (revealed by default), Won’t turn on at all, Thermostat not responding, No symptoms — routine service. Property type radio group (revealed by default): Single-family home, Condo / apartment, Townhouse, Commercial / office, Other. Approximate square footage (select, revealed by default: Under 800 sq ft → Over 4,000 sq ft, Not sure).
  • Step 3 — Photos: See Photo Upload section below.
  • Step 4 — Logistics: How can we access the property? Radio group: Someone will be home, Lockbox / key provided, Need to coordinate a specific time. Where are the units located? Checkbox group: Attic, Basement, Closet / utility room, Outside (condenser), Rooftop, Crawl space, Not sure. Do you have an existing service / maintenance contract? Radio group (revealed by default): Yes / No.
  • Step 5 — Contact & scheduling: Full name (text, required); Email address (email, required); Phone number (tel); Service address (text); Preferred service date (date picker); Preferred time of day (select: Morning 8am–12pm, Afternoon 12pm–5pm, Evening 5pm–7pm, Flexible); Approximate budget (select: Under $200 → Over $3,000, Not sure yet — revealed by default); Additional notes (textarea); How did you hear about us? (select — revealed by default); Send me updates by text (checkbox — revealed by default); Privacy consent (checkbox, required).

Photo Upload

Step 3 includes a native file upload field. Visitors can attach up to 6 photos (JPG, JPEG, PNG, GIF, WebP, HEIC, HEIF — max 10 MB each). Files are stored in your WordPress uploads directory under hvac_leads/. The step note reads: “Photos of the unit, thermostat, error codes, or visible damage help us diagnose before arriving.” A Photo notes textarea lets the visitor annotate the images.

Lead Storage

Every completed submission creates an HVAC Lead custom post type entry in your WordPress admin. All form fields are saved as individual post meta keys under the mhvw_ prefix. Leads appear under HVAC Leads in the sidebar — browse, search, and review without leaving WP admin.

Email Notification

On successful submission, the plugin sends an admin notification email containing all submitted field values, including photo file paths. The recipient address is the site’s admin email by default and is configurable from the plugin settings screen.

Installation

  • Upload the plugin ZIP via Plugins → Add New → Upload Plugin
  • Activate the plugin
  • Drop [hvac_wizard] on any page or widget area
  • View incoming leads under HVAC Leads in your WordPress admin

Requirements

  • WordPress 6.0+
  • PHP 8.0+ (tested on 8.4)
  • No page builder required — pure shortcode

$29.99

Perpetual License

SSL Secure
Stripe
PayPal
Money-Back Guarantee
// real.developer.js
const approach = {
investors: false,
buzzwords: false,
actualUse: true,
problems: ['real', 'solved']
};
// Ship it.

Built by People Who Actually Use the Software

M Media software isn't venture-funded, trend-chasing, or built to look good in pitch decks. It's built by developers who run their own servers, ship their own products, and rely on these tools every day.

That means fewer abstractions, fewer dependencies, and fewer "coming soon" promises. Our software exists because we needed it to exist — to automate real work, solve real problems, and keep systems running without babysitting.

We build software the way it used to be built: practical, durable, and accountable. If a feature doesn't save time, reduce friction, or make something more reliable, it doesn't ship.

Every feature solves a problem we actually had
No investor timelines forcing half-baked releases
Updates add value, not just version numbers
Documentation written by people who got stuck first

This is software designed to stay installed — not be replaced next quarter.

🤖
Support Bot
"Have you tried restarting your computer? Please check our knowledge base. Your ticket has been escalated. Estimated response: 5-7 business days."
❌ Corporate Script Theater
👨‍💻
Developer (M Media)
"Checked your logs. Line 247 in config.php — the timeout value needs to be increased. Here's the exact fix + why it happened. Pushed a patch in v2.1.3."
✓ Real Technical Support

Support From People Who Understand the Code

Ever contact support and immediately know you're talking to someone reading a script? Someone who's never actually used the product? Yeah, we hate that too.

M Media support means talking to developers who wrote the code, understand the edge cases, and have probably hit the same problem you're dealing with. No ticket escalation theatrics. No "have you tried restarting?" when your question is clearly technical.

Documentation written by people who got stuck first. Support from people who fixed it.

We don't outsource support to the lowest bidder or train AI on canned responses. When you ask a question, you get an answer from someone who can actually read the logs, check the source code, and explain what's happening under the hood.

Real troubleshooting, not corporate scripts
Documentation that assumes you're competent
Email support that doesn't auto-close tickets
Updates based on actual user feedback