WCG Locations
Locations for WCG
by West Coast Geothermal · github.com/sitebuilderone/wp-wcg-locations
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/sitebuilderone/wp-wcg-locations/archive/refs/heads/main.zipWCG Locations is a WordPress plugin for structured WCG location landing pages.
It creates a Locations content type and renders city landing pages at:
/locations/{city}/
Example:
/locations/vancouver/
/locations/burnaby/
/locations/richmond/
/locations/coquitlam/
The plugin is designed to replace manually pasted full-page LiveCanvas HTML over time, while preserving the same Bootstrap and van-* visual pattern.
Current Scope
This plugin owns location pages only.
Included in v1:
Locationscustom post type./locations/{slug}/permalinks.- JSON importer.
- Slug-based update-or-create imports.
- Structured location content stored in post meta.
- LiveCanvas-compatible frontend template.
- One top-of-page Fluent Forms embed, with later CTAs linking back to it.
- SEO-friendly
<img>output for hero, sticky section, and service-card images. - Google Maps embed support in the neighbourhoods / areas section.
- Basic
WebPage,Service, andFAQPageschema generation. - Shortcode/filter slot for a future buildings plugin.
Not included:
- Building custom post type.
- Building landing pages.
- QR campaign tracking.
- Campaign redirects.
- CRM or outreach automation.
Installation
Copy or clone this plugin folder into WordPress:
wp-content/plugins/wp-wcg-locations/
Then activate:
WP Admin > Plugins > WCG Locations > Activate
After activation, WordPress should flush rewrite rules automatically. If /locations/{city}/ does not resolve, go to:
Settings > Permalinks > Save Changes
Important Migration Note
The current production Vancouver page is a manual WordPress page:
https://www.westcoastgeothermal.com/locations/vancouver/
A manual Page and a Location CPT post cannot own the same URL at the same time.
Recommended migration:
- Import Vancouver JSON into this plugin as a draft.
- Preview the generated Location post.
- When ready, remove or unpublish the existing manual Vancouver page.
- Publish the new Vancouver Location post.
- Save permalinks.
- Confirm
/locations/vancouver/.
After that, future Vancouver JSON imports can update the Location post by slug.
JSON Import
Go to:
WP Admin > Locations > Import JSON
Upload or paste a JSON file.
The importer uses slug as the stable identifier:
- If a matching Location post exists, it updates that post.
- If no matching Location post exists, it creates a new one.
Minimum JSON:
{
"post_type": "location",
"slug": "coquitlam",
"title": "Coquitlam",
"status": "draft",
"seo": {
"title": "Coquitlam Heat Pump Repair & Condo Replacement",
"meta_description": "Coquitlam condo heat pump repair, second opinions, health checks, and group pricing from water-source and geothermal specialists."
},
"hero": {
"eyebrow": "Coquitlam",
"location_label": "Burquitlam - Lougheed - Coquitlam Centre",
"h1": "Coquitlam heat pump<br>repair & condo<br><span class=\"it\">replacement</span><br>specialists.",
"intro": "West Coast Geothermal helps Coquitlam condo owners, strata councils, property managers, homeowners, and building teams diagnose, repair, and replace heat pump systems.",
"primary_cta": {
"label": "Request service",
"target": "#coquitlam-contact"
},
"secondary_cta": {
"label": "Get a second opinion",
"target": "#coquitlam-contact"
}
},
"trust_points": [
"Serving BC since 2008",
"Water-source & geothermal specialists",
"Repair-first recommendations",
"Strata-friendly coordination"
],
"faqs": [
{
"question": "Do you repair condo heat pumps in Coquitlam?",
"answer": "Yes. West Coast Geothermal helps Coquitlam condo and strata owners with heat pump diagnostics, repair advice, replacement planning, health checks, second opinions, and building group pricing."
}
]
}
Recommended JSON Structure
Use one JSON file per location:
examples/vancouver-location.sample.json
coquitlam-location.json
richmond-location.json
Recommended top-level fields:
{
"post_type": "location",
"slug": "vancouver",
"title": "Vancouver",
"status": "draft",
"seo": {},
"hero": {},
"contact": {},
"map": {},
"trust_points": [],
"sections": {},
"services": [],
"local_resources": {},
"process_image": {},
"process": [],
"who_we_help_image": {},
"who_we_help": [],
"neighbourhoods": [],
"nearby_service_areas": [],
"faqs": [],
"final_cta": {}
}
Recommended image fields:
{
"image_url": "https://www.westcoastgeothermal.com/media/vancouver-heat-pump-services.jpg",
"image_alt": "Vancouver heat pump services",
"image_caption": "Vancouver, BC - heat pump services",
"image_placeholder": "Vancouver heat pump services"
}
Image fields are supported on:
herosections.what_we_dosections.local_contextsections.common_problemsections.system_typessections.repair_vs_replacement- each item in
services process_imagewho_we_help_image
If a location does not provide image fields, the template falls back to the same default image set currently used by the Vancouver reference page. For city-specific SEO, replace those defaults with locally relevant images as they become available.
Recommended local resource fields:
{
"local_resources": {
"eyebrow": "Permits and rebates",
"heading": "Vancouver permit and rebate support.",
"intro": "Some heat pump projects may require a municipal permit or may qualify for rebates.",
"support_note": "West Coast Geothermal can help you identify what may apply and provide equipment or installation details for your application when applicable.",
"links": [
{
"label": "City of Vancouver mechanical permits",
"url": "https://vancouver.ca/home-property-development/mechanical-permit.aspx"
},
{
"label": "Better Homes BC condo and apartment heat pump rebates",
"url": "https://betterhomesbc.ca/rebates/apartments-heat-pump-rebates-for-electricity/"
}
]
}
}
Keep local resource links focused. Use one or two municipal permit/bylaw links for the city, plus the provincial rebate link where relevant. The template renders a maximum of four links.
LiveCanvas Compatibility
The generated frontend template preserves the current LiveCanvas-style page pattern:
- Bootstrap grid classes.
lc-blockwrappers.editable="rich"attributes where useful.- Existing WCG
van-*classes. - Image placeholders around real
<img>tags for section and service imagery. - Fluent Forms shortcode output.
- One form embed near the top of the page.
- Later CTA buttons link back to the top form.
- Google Maps iframe output in the neighbourhoods section.
- FAQ accordion markup.
Reference layout:
sample-livecanvas-layout.html
Note: the plugin template is data-driven. It is not intended to make every section drag-and-drop editable inside LiveCanvas. Editors should change page content through the structured Location fields/imports, not by pasting a full page of HTML.
Future Buildings Integration
The template includes this shortcode:
[wcg_location_buildings location="vancouver"]
By default it outputs nothing.
The future buildings plugin can hook into:
add_filter('wcg_locations_buildings_html', function ($html, $location_slug, $post_id) {
return $html;
}, 10, 3);
That keeps building pages and building directories out of this plugin while allowing related buildings to appear on each location page.
Development Notes
Internal post type:
wcg_location
Public URL:
/locations/{slug}/
Structured content meta key:
_wcg_location_data
Run a PHP syntax check before packaging:
find . -name '*.php' -print0 | xargs -0 -n1 php -l
Suggested Workflow
- Generate or edit a location JSON file.
- Import it through
Locations > Import JSON. - Preview the Location post.
- Adjust the JSON and re-import as needed.
- Publish when ready.
- Migrate old manual pages only after the generated page is ready.