=== BlogOps WP ===
Contributors: davehansensolutions
Tags: blog automation, ai content, scheduling, structured data, autoblog
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 3.6.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Complete blog automation for WordPress. AI writes from YOUR business profile — you approve, it publishes, your blog page and menu stay current.

== Description ==

Free download from the product site — includes an automatic 14-day Pro trial (no card, no signup), a fully working free tier after it, and a one-time Lifetime Pro upgrade. Never a subscription.

BlogOps WP turns a 5-minute business profile into a continuously running blog. It writes with real AI models on your own API key, waits for your approval at every stage (until you tell it not to), and handles all the plumbing around publishing — the blog page, the navigation menu, the schedule, and the structured data.

**Set it up once. BlogOps WP handles the recurring workflow automatically.**

= Why it doesn't produce generic AI filler =

Most AI blog plugins prompt a model cold and get soulless output. BlogOps WP starts with a setup wizard that captures your industry (12 presets from home services to legal to e-commerce), your service area, your audience, your tone of voice, and what genuinely makes you different. Every title and every article is generated from that profile — so the content sounds like your business, references your area, and speaks to your customers.

= The staged approval workflow =

1. **Titles** — batches of headline ideas built from topics your customers actually search. Approve the keepers, edit inline, or delete.
2. **Content** — full structured articles (1,400–2,000 words, proper heading hierarchy, skimmable, optimized for both Google and AI search) generated in the background. Review, edit, approve.
3. **Featured images** — an AI image generated to match each post and your industry's visual style. Regenerate until it's right.
4. **Schedule** — approved posts flow onto your cadence (posting days, spacing, publish time) and publish themselves.

Bulk actions cover every stage — approve titles, generate content, approve content, generate images, approve images, and schedule for any selection at once.

= Autopilot: zero interaction (Pro) =

When you trust the output, flip on Autopilot. Every 15 minutes it approves waiting items, generates content and images in the background, schedules onto your cadence, publishes, and even tops up its own title queue when the pipeline runs low. Spend-safe by design: only a couple of AI generations start per pass, and failed generations never auto-retry — they wait on the dashboard for a human.

= Blog page & menu, handled =

* Creates a paginated blog page (responsive cards, featured images, reading time, categories) once your site passes six published posts — or adopts your existing blog page
* Finds your Blog menu item across all menus, or creates one in your primary menu
* Rotates your six most recent posts beneath the Blog menu item on every publish

= Structured data built in =

* JSON-LD for your homepage: Organization or a LocalBusiness subtype mapped from your industry, with your name, phone, service area, logo, social profiles, and a sitelinks search box
* BlogPosting + breadcrumb markup on published posts; Blog + ItemList on the blog page
* **SEO-plugin aware:** automatically steps aside when Yoast SEO, Rank Math, or All in One SEO is active — never duplicate markup
* A Schema Report shows every page carrying structured data, with the exact reason when one isn't — and you can click any page to view and hand-edit its JSON-LD (validated on save, one-click reset)

= Your AI account, your control =

Connect your own OpenAI, Anthropic (Claude), or Google (Gemini) API key. It's stored encrypted on your server (or defined in wp-config.php), never re-displayed, and never sent to us. You pay your provider directly — a typical article costs cents. Model dropdowns cover current recommendations, and a custom-model field accepts any future model ID without waiting for a plugin update.

= Built for real hosting =

* AI generation runs in a background queue — no "keep this tab open," no PHP timeouts on shared hosting
* Email notifications at every stage you want them
* Type any post author byline — new bylines get a login-disabled author account automatically
* Delegate the content workflow to Editors while keeping settings admin-only

= Plans =

* **Free** — the full staged workflow including AI featured images, with your own API key and 5 AI generations per month. Free installs never contact any license server.
* **Lifetime Pro** (one-time purchase) — no generation limits, Autopilot, menu rotation, bulk pipeline actions, updates for the life of the product, and 12 months of priority support. Verified locally with a cryptographically signed license: no recurring checks, no server dependency, and it keeps working even if we go offline. [Learn more](https://davehansen.com/blogops)

BlogOps WP is an independent product by Dave Hansen Solutions and is not affiliated with or endorsed by the WordPress Foundation.

== External Services ==

BlogOps WP connects to third-party AI services **that you choose and configure** — no data is sent anywhere until you add an API key:

* **OpenAI API** (api.openai.com) — sends your content prompts (built from the business profile and topics you enter) when you select OpenAI for text or image generation. [Terms](https://openai.com/policies/terms-of-use) · [Privacy](https://openai.com/policies/privacy-policy)
* **Anthropic API** (api.anthropic.com) — same, when you select Anthropic/Claude. [Terms](https://www.anthropic.com/legal/consumer-terms) · [Privacy](https://www.anthropic.com/legal/privacy)
* **Google Generative Language API** (generativelanguage.googleapis.com) — same, when you select Google/Gemini. [Terms](https://policies.google.com/terms) · [Privacy](https://policies.google.com/privacy)

If you purchase and activate a Lifetime Pro license, it is verified locally on your server using a public key inside the plugin; installs with an activated license may check davehansen.com for plugin updates. Free installs make no connection to davehansen.com. The plugin also fetches your own site's homepage (a request from your server to itself) for the daily structured-data check.

== Frequently Asked Questions ==

= Do I need my own AI API key? =

Yes — on every plan. You connect an OpenAI, Anthropic, or Google key in the setup wizard and pay that provider directly for usage (a typical full article costs cents). Keys are stored encrypted and never displayed again in full.

= Will AI content hurt my SEO? =

Low-effort AI content can. BlogOps WP fights that two ways: every article is built from your specific business profile (industry expertise, local area, real differentiators), and the staged workflow means a human — you — approves everything before it publishes. Autopilot exists for when you trust the output, but it's off by default.

= Is anything sent to your servers? =

No. Your prompts go from your server directly to the AI provider you chose. Free installs never contact our servers at all; licensed installs verify the license locally and may check for updates. See External Services above.

= What happens when I hit the free limit? =

Nothing breaks — everything already published stays published and the workflow keeps working. You get 5 fresh generations on the 1st of each month, or a one-time Lifetime Pro purchase removes the limit permanently.

= Does it work with my SEO plugin? =

Yes. BlogOps WP detects Yoast SEO, Rank Math, and All in One SEO and automatically suppresses its own structured data so there's never duplicate markup. Everything else is fully compatible.

= Does Autopilot really need zero interaction? =

Yes — titles, content, images, scheduling, publishing, and topping up its own queue all run on their own. It only waits for a human if a generation fails (deliberately: failed AI calls are never auto-retried, to protect your API budget).

== Screenshots ==

1. The Queue & Approvals dashboard — every post moving through the staged workflow
2. Setup wizard — the 5-minute business profile that powers all generation
3. AI Provider settings — encrypted keys, model choice, custom model IDs
4. Autopilot settings — zero-interaction mode with spend safeguards
5. The auto-created blog page with responsive cards and pagination
6. Schema Report — every page's structured data, with per-page JSON editing
7. Bulk actions — approve, generate, and schedule any selection at once

== Changelog ==

= 3.6.5 =
* Queue pagination: page links, a 20/50/100 per-page selector, and a status filter dropdown, so long-running blogs stay manageable.

= 3.6.4 =
* Free edition: the Go Pro tab is now a real settings panel describing the Pro upgrade, instead of a link the tab script swallowed.

= 3.6.3 =
* Text domain corrected across all translation calls in the Free edition; final coding-standards cleanup. Plugin Check now reports zero relevant errors.

= 3.6.2 =
* Hardened activation: setup discovery now runs on the first admin page load instead of inside the activation hook, and any discovery error is recorded rather than interrupting activation.
* Faster update checks (short timeout) so wp-admin never feels hung if the update host is unreachable.
* WordPress coding-standards pass: fully prepared database queries, output escaping at every echo, wp_strip_all_tags/wp_delete_file substitutions, and a languages folder for translations.

= 3.6.1 =
* Version renumbered to supersede any prior 3.6.0 build and avoid update-channel collision.

= 3.6.0 features (included above) =
* NEW: Separate image generator — a checkbox in Settings → AI Provider lets image generation use its own dedicated API key (different account, different billing, or a different provider than text). Select a provider or type any custom model ID.
* NEW: Advanced API base URL overrides for text and image — point BlogOps at any OpenAI-compatible endpoint (OpenRouter, Groq, Together, Azure, LocalAI/self-hosted, corporate gateways). Blank keeps the official endpoints. Also settable via BOPS_TEXT_API_URL / BOPS_IMAGE_API_URL in wp-config.php.
* NEW: Automatic 14-day Pro trial on first activation — every feature unlocked instantly, no card, no signup, entirely local. One trial per site.
* NEW: Effortless setup discovery — the wizard is pre-filled from any previous BlogOps install, Yoast/Rank Math/AIOSEO, WooCommerce store details, your site tagline, and your existing categories/authors. Review-and-go instead of type-everything.
* NEW: Season & holiday awareness — the current season and upcoming holidays (hemisphere-aware, auto-detected from your timezone) are woven into every generation prompt, so content stays timely with zero prompt maintenance. Toggle in Settings → Prompt Instructions.
* NEW: Optional monthly "seasonal angle" pack fetched from the BlogOps service, so timely content angles improve without plugin updates.
* NEW: Redundant service hosts — licensing, update checks, and the seasonal pack automatically fail over to a backup host if the primary is unreachable.
* Clarified everywhere: BlogOps WP Pro is a single one-time Lifetime purchase — never a subscription. All AI generation always runs on your own API key.


= 3.5.2 =
* Update checks now run only on installs with an activated license; free installs make no remote connections.

= 3.5.1 =
* Upgrade prompts link directly to the Lifetime Pro panel instead of dead-ending.

= 3.5.0 =
* AI featured images included on the Free plan (counted within the monthly quota).

= 3.4.0 =
* Simplified to two plans: Free and Lifetime Pro (one-time purchase).

= 3.3.0 =
* Schema Report tab with per-page JSON-LD viewing and editing.

= 3.2.0 =
* Full bulk pipeline actions; typed post-author entry with automatic byline accounts.

= 3.1.0 =
* Structured data (JSON-LD) with SEO-plugin conflict detection and a daily homepage check.

= 3.0.0 =
* Own-key architecture: your AI keys and content never pass through our servers.

= 2.x =
* Onboarding wizard, multi-provider AI, background generation queue, encrypted key storage, Autopilot, licensing, blog page and menu automation.

== Upgrade Notice ==

= 3.5.2 =
Free installs no longer make any remote connections. Recommended for all users.
