=== LocalPro Companion ===
Requires at least: 7.1.3
Requires PHP: 8.3
Stable tag: 2026.10.12.001
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Copyright (c) 2026 Matthew X Murphy.
Author: Matthew X Murphy
Author website: https://matthewxmurphy.com/
Design website: https://builtnotbegged.com/

== Description ==

LocalPro Companion provides six content shortcodes and optional page-builder
elements for the LocalPro WordPress theme. The theme supplies the visual styles
and its niche defaults. Elementor and WPBakery Page Builder are optional and are
not bundled in this plugin. Each integration loads only when its builder is
available. WPBakery requires a license obtained separately.

The optional Tools > LocalPro Setup screen creates clearly marked illustrative
block pages and a new menu after an administrator submits its nonce-protected
form. It never runs on plugin activation. An optional private inquiry inbox can
be enabled separately under Tools > LocalPro Inquiries after an administrator
supplies a published privacy policy URL. Fresh installs and sample setup do not
enable intake. Inquiries stay in this database for explicit owner review; no
email, CRM dispatch, automatic matching or resale is performed. The plugin does
not download remote assets or install other plugins.

== Optional sample-content setup ==

With LocalPro active, open Tools > LocalPro Setup. Choose one of its thirteen
presets and acknowledge that the content is illustrative. The default creates
draft Home, About, Services, Contact and Blog pages plus an unassigned menu.
Their text uses native editable WordPress blocks. No sample posts, comments,
stock photographs, customer reviews, numeric claims or real contact details
are imported.

Choose the business purpose independently from the thirteen design presets:
local business, local and wider service areas, or a content publisher connecting
inquiries with businesses. New Home blocks describe that purpose and Contact
contains the optional [localpro_lead_form] shortcode. The form remains closed
until its private inbox is explicitly enabled. Publisher mode supports readers
of the stay-at-home-mom book and the male-audience edition without making income
or lead guarantees or assuming a visitor's gender.

Two separate unchecked options let you explicitly publish those pages and
assign Home/Blog/primary menu, or apply the selected design preset and purpose.
Each saves its prior settings for undo. Existing pages, posts, menus, site
identity, contact details, colors and other Customizer settings are preserved.
Applying a preset affects the theme's native homepage sections before the
imported page content; saved Customizer content overrides still take priority.

Repeated setup reuses owned records and resumes incomplete creation without
overwriting edits. The screen lists its saved receipt, editor links, errors and
records retained by undo. Undo removes only unchanged owned content and
restores assignments only while they match importer values (or are already
restored). Edited pages/menus, newer manual settings, comments, child content
and references from retained menus or homepage settings are preserved.
Review retained records manually; undo is intentionally conservative.

Native design compositions and bundled media are supplied by the matching theme.
The importer does not download a premium builder template or replace the buyer's
Customizer content and media. See docs/LEAD-WORKFLOW.md in the source project for
the API contract, consent/privacy behavior, recovery and QA boundaries.

== Installation ==

1. In WordPress, open Plugins > Add New Plugin > Upload Plugin.
2. Choose localpro-companion.zip from the LocalPro distribution and install it.
3. Activate LocalPro Companion and the LocalPro theme.
4. Optionally install and activate a supported page builder from its legitimate
   distribution. LocalPro elements will appear in that builder.

Keep this plugin active to retain shortcode functionality in saved content.
After changing themes, custom shortcode text can still render, but LocalPro's
theme styles and niche defaults will no longer be supplied.

== Shortcodes ==

[localpro_hero]
Attributes: eyebrow, title_a, title_b, sub, cta_text, cta_url.
Empty text attributes use the active niche defaults where available.
The default CTA destination is #contact; provide your actual page or section URL.

[localpro_services]
Attributes: eyebrow, heading, titles.
Provide a comma-separated titles list or leave it empty for niche defaults.
Every shortcode services section receives a unique localpro-services-* ID.
The #services anchor belongs only to the theme's native homepage section.
Cards display titles without individual links.

[localpro_stats]
Attribute: stats.
In WPBakery, add rows using the Stats parameter group. Saved rows contain a
value and label; incomplete or malformed rows are skipped. The shortcode also
accepts URL-encoded JSON containing those rows without WPBakery being active.
Empty or invalid custom rows fall back to the active niche statistics.

The earlier enclosed-content format remains supported, including single or
double quotes:
[localpro_stats]value="Your verified value" label="Your verified label"[/localpro_stats]

Only publish statistics you can substantiate. The plugin does not verify claims.

[localpro_testimonial]
Attributes: quote, name, city.
Use an authorized quote and verified attribution. No rating is added or inferred.
Supplied quotes use only the name and city you explicitly provide; they never
inherit a sample reviewer from the theme. Omitting all attributes uses the
active theme's complete sample testimonial where available.
The shortcode returns no testimonial when there is no quote.

[localpro_cta]
Attributes: title, button, url.
The default destination is #contact. Set your actual destination when needed.

[localpro_lead_form]
No privileged attributes. When explicitly enabled, stores name, email, optional
phone, service, region and message in a private owner-only inbox. Consent to a
reply is required. Publisher mode offers a separate optional permission to share
the request, and a choice between seeking a business or offering services.
Saved requests are excluded from public search and REST. Owner status changes
record an audit history and reject stale edits. Nothing is automatically sent
or sold. Configure actual contact information and a privacy/retention policy;
exclude enabled form pages from full-page caches so form tokens stay fresh.
WordPress personal-data export/erase tools support matching inquiry records.
Records are not automatically deleted on deactivation or uninstall.

== Translation ==

Text domain: localpro-companion.
The languages/localpro-companion.pot file contains the original translation
template. Place the translated .mo and .po files in the languages directory using
the localpro-companion-LOCALE filename convention.

== Changelog ==

= 2026.10.11.001 =
* Separate local, expanded-region and lead-publisher purpose from industry design.
* Add optional local private inquiry storage with explicit owner enablement.
* Validate consent, nonce, signed lifetime, honeypot, field sizes and rate limits.
* Keep inquiries out of public search/REST and use owner-only review/audit history.
* Add WordPress personal-data export/erase support; no email or automatic routing.
* Preserve four-argument importer callers, legacy receipts and buyer edits.
* Journal explicit purpose assignments and retain later manual changes on undo.
* Adopt Chicago calendar versions; historical 1.0.2 and 1.0.3 artifacts are intact.

= 1.0.2 =
* Add explicit administrator-only, reversible block-page and menu setup.
* Keep publication, homepage/menu assignment and preset changes opt-in.
* Require WordPress 7.1.3 and PHP 8.3 for this candidate release.

= 1.0.1 =
* Decode WPBakery statistics rows, with a JSON fallback when WPBakery is inactive.
* Preserve the earlier enclosed statistics format and valid zero values.
* Remove automatic five-star testimonial ratings.
* Keep supplied reviews separate from preset reviewer names and locations.
* Give every services shortcode a unique ID, including beside native sections.
* Keep page-builder registrations and elements in the companion plugin.
* Add explicit translation loading and complete source attribution.
* Correct the description to document the implemented functionality.

= 1.0.0 =
* Initial five LocalPro content shortcodes.

== Copyright and license ==

Copyright (c) 2026 Matthew X Murphy.
https://matthewxmurphy.com/
https://builtnotbegged.com/

LocalPro Companion is licensed under the GNU General Public License, version 2
or, at your option, any later version. See LICENSE.txt for the license text.
