=== Firetap Knowledge Panel Schema === Contributors: firetapltd, rakshakmathur Tags: schema, json-ld, knowledge panel, localbusiness, structured data Requires at least: 6.0 Tested up to: 6.9 Stable tag: 2.6 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Generate clean JSON-LD schema for Organization, LocalBusiness, FAQs, Products and Courses with full control and no duplicates. == Description == Firetap Knowledge Panel Schema is a lightweight yet powerful structured data plugin designed for **SEO professionals, agencies, and local businesses** who want **accurate, error-free schema markup** without complexity. Unlike many schema plugins, this plugin focuses on: ✔ Clean JSON-LD output ✔ No duplicate structured data issues ✔ Full control over where schema appears ✔ Compliance with Google Rich Results guidelines It helps you build a complete **Google Knowledge Panel-ready schema setup** including: * Organization and LocalBusiness schema * Multi-location support (primary + additional locations via `hasPart`) * Opening hours and special/holiday hours * FAQ schema with URL targeting (prevents duplicate FAQ warnings) * Product schema with valid `Offer` markup and image fallback * Course schema using correct `Course` type (not misused Product schema) * Optional Google Reviews integration (via Google Places API) Developed by **FireTap Ltd**, a UK-based digital marketing agency focused on technical SEO. == Why This Plugin? == Most schema plugins: * Output unnecessary or bloated markup * Cause duplicate FAQ or Product schema issues * Misuse schema types (especially Courses) This plugin is built to **avoid those problems completely**. ✔ No shortcodes ✔ No frontend rendering ✔ No unnecessary scripts ✔ Only clean JSON-LD output == Features == * Business type selector (ProfessionalService, LegalService, Store, etc.) * Primary location + multiple additional locations * FAQ schema with page-level targeting * Product schema: * Price * Availability * Image (with automatic logo fallback) * Course schema for training and education * URL targeting for: * FAQs * Products * Courses * Opening hours + special hours support * Google Rich Results compatible output * Live JSON-LD preview in admin panel * Lightweight and fast (no frontend assets) == External Services == This plugin can optionally connect to the **Google Places API (Google Maps Platform)** to fetch public review and rating data. * What is sent: * Your configured **Place ID** * Your **API key** * When: * Only when Google Reviews are enabled * Only during frontend schema generation * Why: * To output `aggregateRating` and `review` structured data Service provider: Google (Google Maps Platform) Terms: https://cloud.google.com/maps-platform/terms Privacy: https://policies.google.com/privacy == Installation == 1. Upload the plugin folder to `/wp-content/plugins/` 2. Activate the plugin 3. Go to **KPSP Schema** in the WordPress admin menu 4. Configure your schema settings 5. Save changes == Frequently Asked Questions == = Will this cause duplicate FAQ errors? = No. FAQ schema can be restricted to specific URLs to prevent duplication issues. = Can I use this for courses instead of products? = Yes. Courses use proper `Course` schema instead of incorrectly using Product schema. = Does schema output on every page? = Only if URL targeting is left blank. You can control exactly where schema appears. = Does this slow down my website? = No. The plugin only outputs lightweight JSON-LD in the `` with no frontend scripts. == Changelog == = 2.6 = * Fixed location fields not saving correctly in admin * Fixed locations option mismatch (locations → kpsp_locations) * Improved location sanitisation and reliability * Improved live JSON preview accuracy * General stability and admin improvements = 2.5 = * Added Course schema support * Added Product image upload with logo fallback * Added URL targeting for FAQs, Products & Courses * Fixed Product rich results validation * Improved schema output consistency == License == This plugin is licensed under the GPL v2 or later. == Technical Notes == The `Contributors:` field lists WordPress.org usernames to properly attribute development and link profiles in the plugin directory.