=== Volteruno – AI Blog Auto-Publish ===
Contributors: vargyasandras
Tags: ai, seo, blog, auto-publish, woocommerce
Requires at least: 5.6
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 2.8.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Turn your WordPress blog into a growth channel that keeps publishing while you focus on the business.

== Description ==

**Your blog writes and publishes itself — you set the plan once.**

Most WordPress blogs stop after a handful of posts. Not because the owner does not care, but because one good article means research, keywords, structure, meta data, images, internal links and an evening that never comes free.

Volteruno removes that evening. Connect this plugin once, and your Volteruno account handles the whole chain:

**Find what to write → write the full article → publish it directly to WordPress → keep it moving automatically.**

= What you get =

* **One-click WordPress connection.** Install, activate, click **Connect this site to Volteruno**, approve it once. No connection code to copy, no API keys, no FTP, no developer.
* **Topics you can actually publish around.** Volteruno suggests article ideas for your site and shows an estimated keyword difficulty and monthly search volume next to each one, so you decide what has a chance — not what merely sounds nice.
* **Complete articles, not drafts.** Every article ships with a title, meta description, H1/H2 structure, a slug and internal links to your other posts. Where the format calls for it, the article also includes an FAQ section, a table of contents, a TL;DR or key takeaways, plus a featured image with alt text.
* **Published straight to WordPress.** New posts appear on your site under your chosen WordPress author, at the time you scheduled — in your site's own WordPress timezone.
* **Autopilot.** Turn it on per website and new articles are planned, written and published on a repeating schedule. Turn it off any time.
* **Editorial calendar.** See what is scheduled, what is live and reschedule anything before it goes out.
* **WooCommerce aware.** If WooCommerce is active, Volteruno can read your product catalog and reference relevant products inside articles you generate for that site.
* **Multilingual.** Articles can be written in 32 languages. The Volteruno dashboard and this plugin's admin screen are translated into 25.
* **You stay in control.** Preview, edit, reschedule, unpublish or delete anything from your normal WordPress admin. The plugin only creates new posts — it never edits or deletes your existing content unless you explicitly ask for that action on a specific article.

= How it works =

1. **Install and activate** this plugin.
2. **Click "Connect this site to Volteruno"** and approve the connection once. A free Volteruno account is created if you don't have one.
3. **Pick a topic** — from the suggested ideas or your own.
4. **Volteruno writes the full article** and publishes it to this site, now or on your schedule.
5. **Optional: switch on Autopilot** so the next articles happen without you.

= Try it without paying =

Your first article is free. No credit card is required to create the account and publish it. Paid plans exist for higher monthly volume and more websites — you only pick one if the first article convinced you.

= What this plugin does and does not do =

This plugin is the secure bridge between your WordPress site and your Volteruno account. The writing, topic research, scheduling and publishing controls live in your Volteruno dashboard at volteruno.com. The plugin adds no front-end code, no ads and no tracking to your site.

== Installation ==

1. In WordPress, go to **Plugins → Add New**, search for **Volteruno**, click **Install Now**, then **Activate**.
2. Open **Settings → Volteruno**.
3. Click **Connect this site to Volteruno** and approve the connection. That's it — nothing to copy or paste.
4. Write your first article from your Volteruno dashboard and watch it appear in **Posts**.

== Frequently Asked Questions ==

= Do I need SEO experience? =

No. Volteruno handles the research, structure, meta data and publishing. You only choose which topic to publish.

= Do I need a credit card? =

No. Creating the account and publishing your first article is free. Paid plans only start if you want more volume or more websites.

= How does WordPress connect? =

Install and activate this plugin, then click **Connect this site to Volteruno** in **Settings → Volteruno**. One approval in Volteruno is enough. No code to paste, no API keys, no FTP.

= Can I review or edit articles before they go live? =

Yes. You can preview and edit an article in Volteruno before publishing, schedule it for later, or let Autopilot publish on schedule. Once it is on your site, it is a normal post you can edit, unpublish or delete in WordPress.

= Will Volteruno change my existing posts? =

No. The plugin only creates new posts through the official WordPress REST API. It never edits, overwrites or deletes content you already have, unless you explicitly trigger an update on a specific article.

= Can I turn Autopilot off? =

Yes, at any time, per website. When Autopilot is off, Volteruno stops planning and publishing new articles for that site.

= Does it work with WooCommerce? =

Yes, but WooCommerce is optional. If it is active, Volteruno can read your product catalog and reference relevant products inside articles generated for that site.

= Which languages are supported? =

25 — including English, German, French, Spanish, Italian, Dutch, Polish, Portuguese, Romanian, Swedish, Hungarian and more. The plugin admin screen follows your WordPress site language.

= Does Volteruno guarantee rankings? =

No, and be careful with any tool that promises that. Volteruno gives you consistent, technically clean, internally linked content published on a real schedule — the part most sites never manage. Google decides the rest.

= What happens if publishing fails? =

Open **Settings → Volteruno**. The screen tells you whether this site is connected and when it last talked to Volteruno, and offers **Repair connection** if the link broke. Support is reachable from the same screen.

== Screenshots ==

1. The result: a finished article published on your WordPress site — full text, headings, images, slug and author.
2. You give a topic, or nothing at all. Volteruno handles the research, keywords, structure, SEO and publishing.
3. Stop guessing what to write about: topic ideas ranked for your website, with keyword difficulty and monthly search volume.
4. Complete articles, not short AI drafts: real structure, headings, an FAQ section and internal links.
5. Autopilot keeps publishing without you — choose how many articles, which days and what time.
6. See what is live and what comes next: every article in one library with its live or scheduled status.
7. Connecting WordPress takes one click — install the plugin and press the button in Settings → Volteruno. No connection code, no API keys.
8. Your first article is free, with no credit card. Try the whole workflow before you pay anything.



== Changelog ==

= 2.8.0 =
* Safety: A publishing task is now carried out at most once. The plugin records each task before it writes anything, so a lost connection or a repeated delivery can no longer create the same post twice.
* Safety: If a post for a task already exists, the plugin only takes it over when every detail matches — title, text, excerpt, status, categories, tags and featured image. Otherwise it refuses instead of touching your published post.
* Improved: A refused or cancelled task is now reported back clearly, so your Volteruno account knows whether the post was written or not.

= 2.7.1 =
* Improved: Plugin listing rewritten to focus on the outcome — a WordPress blog that keeps publishing — with clearer setup steps and a more conversion-oriented FAQ.

= 2.7.0 =
* New: Volteruno can now add a single, natural internal link inside an article you already published — it only turns an existing phrase into a link, it never writes new sentences.
* Safety: If you edited the article in the meantime, the update is refused instead of overwriting your work, and the version before the change is saved as a WordPress revision so you can restore it at any time.

= 2.6.16 =
* Fix: Scheduled posts that are delivered through the plugin channel are no longer lost. A publishing task could be handed to a page view that never reads the answer, so nothing was published and the attempt was used up. Tasks are now only handed to the background job that actually runs them.

= 2.6.15 =
* Fix: When an authorization is refused because the site announces a different address, the message now shows the address WordPress actually sent during that attempt. On hosts that rewrite preview/staging domains it previously printed the same address twice, which made a real mismatch look like a phantom error.


= 2.6.14 =
* Fix: Sites that announce a different address than the one registered in Volteruno (staging clones, hosting preview domains, reverse proxies) can connect again. Such an attempt was previously reported as an expired link, which left no way forward.
* Improved: A refused authorization now says exactly what happened — the address stored in Volteruno versus the address WordPress reports — instead of always claiming the link expired.
* Improved: Completed the translations of the connection screen in all 24 supported languages.



= 2.6.13 =
* New: The plugin now reports this site's WordPress timezone to Volteruno, so scheduled posts go out at your real local time instead of a guessed one.
* Improved: Connection health reporting is more accurate — a missing heartbeat no longer hides a working publishing path, and a genuinely broken one is no longer shown as fine.

= 2.6.12 =
* Fix: The one-time connection state is no longer overwritten when the plugin page is reloaded while an approval is in flight, so the normal plugin-first flow completes automatically without a second "Allow and connect" click.
* Fix: The "restore connection" link from a broken connection now carries the same state, so reconnecting is also single-approval.
* Unchanged: manage_options requirement, single-use state, expiry, one-time host-bound ticket and the manual approval banner for unsolicited or legacy links.

= 2.6.11 =
* New: Single-approval connection. You approve the link once in Volteruno; the plugin then redeems the one-time, site-bound pairing ticket automatically on return — no second click in WP-admin.
* Security: The auto-redeem only happens when the returning request carries the short-lived state nonce this site generated. Unsolicited tickets still require manual approval.
* Improved: Cleaner connect screen — the manual connection code field and diagnostics stay hidden unless opened via a support URL.

= 2.6.7 =
* New: One-click connection is now the main path on a fresh install — "Connect to Volteruno" opens your dashboard with this website prefilled, then approves the link from WP-admin. No code to copy.
* Improved: The Connection Code method is still available, tucked away as a fallback.
* New: Post-connection "You're connected" screen that shows exactly what to do next: generate an idea, write an AI article, turn on Autopilot. Available on every plan, including the free one.
* New: Steady-state health screen with relative "last heartbeat" timing so you can tell at a glance whether the site is talking to Volteruno.
* Improved: Deterministic 3-state admin UI — the plugin page always shows exactly the right guidance for where you are in the setup (empty → just connected → steady).
* Improved: Reconnecting an already-connected site no longer re-triggers the welcome celebration screen.



= 2.4.2 =
* Fixed: "Cannot redeclare volteruno_migrate_connected_at()" fatal error when two plugin folders were present during an upgrade. A load-guard now prevents double-registration.

= 2.4.1 =
* Improved: Soft advisory checks (like REST API loopback) no longer block or worry the user on the connection screen — only real blockers are shown. Green "All environment checks passed" appears when the site is reachable.

= 2.4.0 =
* New: Deterministic 3-state admin UI (Onboarding → 24h "You're connected" celebration → Steady-state health screen).
* New: Real Volteruno community count shown as social proof (rounded, no personal data).
* New: Full localization into 25 languages — the admin UI follows your WordPress site language automatically.
* Improved: Migration hook backfills connection timestamps for existing installs so the health screen shows accurate "last heartbeat" timing.

= 2.3.1 =
* Fixed: Self-healing heartbeat check on the `init` hook ensures reporting starts even when `register_activation_hook` is skipped during a ZIP upgrade.
* Fixed: Admin role detection in AJAX/REST contexts now falls back to a direct database check so background heartbeats no longer report a false `admin_role: false`.

= 2.3.0 =
* New: 15-minute heartbeat system — the plugin proactively reports plugin/WP/PHP versions and environment check results to Volteruno so the dashboard always mirrors the real site state.
* New: Public `/wp-json/volteruno/v1/status` endpoint for credential-less connectivity checks.
* New: HMAC-signed `/wp-json/volteruno/v1/handshake` reverse-probe proves the paired site is really this WordPress install.
* Improved: More robust connection code storage and clean deactivate/uninstall lifecycle.

= 2.3.2 =
* New: Public `/wp-json/volteruno/v1/status` endpoint — Volteruno can now verify plugin state without credentials, eliminating "split-brain" cases where the plugin UI and the dashboard disagreed about connection health.
* New: HMAC-signed `/wp-json/volteruno/v1/handshake` reverse-probe proves the paired site is really this WordPress install.
* New: Every 15 minutes, the plugin sends a lightweight heartbeat (plugin version, WP/PHP version, environment check results) to Volteruno so the dashboard always reflects the real state of this site.
* Improved: Deactivating the plugin now cleanly unschedules the heartbeat cron. Reactivating restores it automatically.

= 2.2.3 =
* Fixed: REST API loopback check no longer shows a false-positive red warning on hosts that block self-loopback requests (cPanel, Cloudflare, strict firewalls). When the connection itself succeeds, the warning is suppressed and falls back to two probe URLs.
* Fixed: Deactivating the plugin no longer wipes your saved Connection Code. Reactivating restores the connection instantly — no need to paste the code again. Full cleanup still happens on uninstall.
* Improved: REST API check uses both pretty-permalink and ?rest_route= fallback URLs for higher accuracy.

= 2.2.2 =
* New: Cashvertising-style plugin description and updated WordPress.org banner & icon featuring the official Volteruno brand.
* Improved: Documentation now clearly highlights in-article WooCommerce product linking, automatic internal linking and senior-grade technical SEO.

= 2.2.1 =
* WooCommerce store integration highlighted: AI now reads your product catalog and recommends products inside every article.
* Save & Connect UX overhaul: pre-flight environment checks, structured error messages, no more silent page reloads.
* Added full translations for all 24 official EU languages — the plugin admin UI follows your WordPress site language automatically.
* Added "Copy diagnostic info" button for faster support.

= 2.0.3 =
* Added "External services" section to readme documenting the Volteruno API connection.
* Added vargyasandras to the contributors list.

= 2.0.1 =
* First public release on WordPress.org.
* Full internationalization (i18n) support.
* Added clean uninstall: removes all plugin options and the Volteruno Application Password on plugin deletion.

== Upgrade Notice ==

= 2.8.0 =
Recommended update. Refreshes the plugin listing description to focus on the outcome and makes the FAQ easier to scan.


== External services ==

This plugin connects your WordPress site to **Volteruno**, a third-party SaaS service operated by Volteruno (https://volteruno.com), so AI-written blog posts created in your Volteruno dashboard can be published to your site automatically.

**What is sent and when:**

* **On connection (only when you click "Connect this site to Volteruno" and approve it in Volteruno):** the plugin sends your site URL, the connecting admin's email/username, the one-time pairing ticket (or, in the support-only manual mode, the Connection Code you pasted), and a freshly generated WordPress Application Password (named "Volteruno Auto-Publish") to the Volteruno API endpoint at `https://iaifmquygwpugdhrqmpr.supabase.co/functions/v1/wordpress-connect`. This is required so Volteruno can authenticate future publishing requests to your site.
* **Every 15 minutes (heartbeat, only after you connect):** the plugin sends the Connection Code, site URL, plugin/WordPress/PHP version and the results of the local environment checks (HTTPS, Application Passwords, REST API, outbound HTTPS) to `https://iaifmquygwpugdhrqmpr.supabase.co/functions/v1/wordpress-heartbeat`. This lets the Volteruno dashboard show the real health of this site. No post content, user data or credentials are sent.
* **On publishing (only when you trigger a publish from the Volteruno dashboard):** Volteruno sends the post content (title, body, featured image, tags, categories, excerpt, SEO metadata) back to your site via the standard WordPress REST API.
* **WooCommerce product sync (only if WooCommerce is active and only when Volteruno requests it):** Volteruno reads your product catalog (titles, descriptions, prices, images, categories, currency) via the plugin's `/wp-json/volteruno/v1/products` endpoint, authenticated with your Connection Code. This data is used solely to recommend your own products inside articles generated for your site. No customer data, orders, or personal data are ever read.

No data is sent to Volteruno unless you explicitly install this plugin and start the connection yourself from **Settings → Volteruno**. The plugin does not send any analytics or telemetry.

The Volteruno backend is hosted on Supabase infrastructure, which is why the API endpoint above is on a `supabase.co` subdomain.

* Service: Volteruno — https://volteruno.com
* Terms of Service: https://volteruno.com/terms
* Privacy Policy: https://volteruno.com/privacy

== Privacy ==

This plugin sends your site URL, the connecting admin's email/username and an auto-generated WordPress Application Password to the Volteruno API (https://volteruno.com) once, when you connect the site from **Settings → Volteruno**. After that, the Volteruno service uses those credentials to publish articles you create in your Volteruno dashboard. No analytics or tracking data is collected by the plugin itself. See the [Volteruno Privacy Policy](https://volteruno.com/privacy) for full details.
