=== PBJ Essentials ===
Contributors: pbj
Tags: https, cache, forms, analytics, membership
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Seven small, complete site tools: force-HTTPS + cache, single-region blocking, basic forms, page login locks, content push, a 3-day traffic dashboard, and a single-product license server.

== Description ==

PBJ Essentials is a toolbox of seven independent modules. Each is a small, complete feature - switched off by default, no lock icons, no nags:

* **HTTPS & Cache** - 301-redirect http to https (loop-safe) and serve public pages from LiteSpeed edge cache with conservative exclusions.
* **Region Blocker** - make your site view-only for visitors from one country: no purchases, comments, or registrations. Pages render fully for everyone, including search engines and AI crawlers.
* **Basic Forms** - unlimited simple forms (text/email/textarea) with honeypot, time-trap, and rate-limit spam protection. Submissions are emailed to you, with Reply-To set to the sender.
* **Page Login Lock** - restrict any Page to logged-in users with a custom message; restricted pages are also hidden from search, feeds, REST, and embeds.
* **Content Push** - push published posts and pages to a second WordPress site over the REST API using an Application Password you create there. Matched by slug: existing content is updated, missing content created.
* **3-Day Traffic** - a private, cookieless pageview dashboard (totals, top pages, top referrers) covering the last 3 days. No cookies, no external services, no personal data stored.
* **License Server** - serve license keys and update manifests for one product you sell, with signed expiring download links. A missing key never breaks a customer's install - it only pauses updates.

Each module has a bigger sibling: the full PBJ plugin for that area (sold separately at pbj.tech). When a full plugin is installed and active, its Essentials module automatically stands down - no double behavior, nothing to configure. The Modules screen shows the status of every area.

= External services =

The Region Blocker can optionally (off by default) look up a visitor's country via ip-api.com when no Cloudflare country header is present. Only the visitor IP is sent, results are cached for 12 hours, and the readme setting explains this next to its off switch. No other module contacts any external service.

The optional Feedback form on the settings screen emails your message (and, only if you tick the box, basic site info) to the plugin author. Nothing is ever sent automatically.

== Installation ==

1. Upload pbj-essentials.zip via Plugins → Add New → Upload Plugin (or install from the directory).
2. Activate. Nothing changes yet - every behavior-affecting module starts off.
3. Open PBJ Essentials in the admin menu, read the User Guide tab, and switch on what you need.

== Frequently Asked Questions ==

= Does activating this change my site? =

No. All modules that affect site behavior start switched off. Basic Forms and Page Login Lock are inert until you create a form or lock a page.

= What happens when I install a full PBJ plugin? =

Its Essentials module detects it and stands down automatically. Your settings stay saved in case you ever remove the full plugin.

= Is the traffic module GDPR-friendly? =

It stores only day, URL path, referrer domain, and a counter - no IPs, no cookies, no fingerprints - and deletes everything older than 3 days.

== Upgrade Notice ==

= 1.0.0 =
Initial release.

== Changelog ==

= 1.0.1 =
* Clearer in-admin walkthroughs on every tab: plain-English intros and numbered how-to steps on the Forms, Sync, Traffic, License, and Settings tabs, plus a one-line "what turning this on does" summary on each module card. No functional changes.

= 1.0.0 =
* Initial release: HTTPS & Cache, Region Blocker, Basic Forms, Page Login Lock, Content Push, 3-Day Traffic, single-product License Server, Modules screen, User Guide, Feedback form.
