=== Poliris ===
Contributors: poliris
Tags: seo, meta description, seo title, integration
Requires at least: 5.6
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 0.2.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Connects your WordPress site to your Poliris workspace so approved SEO fixes and content drafts are applied directly — no copy-paste.

== Description ==

Poliris connects this site to your Poliris account, so approved fixes and drafts are applied automatically. Here's what that means:

* Implement automatically the SEO fixes in Poliris - title, meta description, alt text, or content. It's applied to your post or page right away.
* Page-level fixes such as Open Graph tags, canonical URLs, structured data, text corrections - go straight into your page's HTML. No JavaScript snippet, and search engines see the fix immediately.
* Content Poliris writes for you shows up as a draft in wp-admin. Nothing gets published without your review.
* You can undo any change from your Poliris dashboard.

The plugin stays out of your way. There's one settings screen (pairing), it only stores the fixes you've approved, and it adds two REST endpoints - one to check connection status, and one to read/write SEO titles and descriptions for Yoast SEO or Rank Math.

**How access works:** When you pair, the plugin creates a WordPress Application Password and sends it to Poliris securely over HTTPS. From then on, Poliris uses that password to authenticate the same system WordPress itself uses. Want to cut access? Revoke the "Poliris" password from your profile anytime.

You'll need a Poliris account: https://poliris.io

== External services ==

This plugin connects your site to Poliris (https://poliris.io), so fixes and
drafts you approve there can be applied here. You'll need a Poliris account for
it to work.

**What is sent, and when**

* **When you pair** (by pasting a code and clicking "Connect to Poliris"): the
  plugin creates a WordPress Application Password and sends it to Poliris,
  along with your pairing code, site URL, WordPress and plugin versions, and
  active SEO plugin (if any). Poliris stores the password encrypted, so it can
  act on your site.
* **After pairing**: when you approve a fix or draft in Poliris, it updates
  that specific post, page, SEO field, alt text, or draft on your site using
  the saved password.
* **While paired**: the plugin checks in with Poliris at most once a minute by
  pulling any newly approved fixes and confirming the connection is healthy.
  These check-ins only send your site's public ID, never content, visitor
  data, or credentials.

Poliris never receives analytics, visitor data, or personal data from this
plugin. Nothing is sent until you enter a pairing code, and you can cut access
anytime by revoking the "Poliris" password in your profile.

Using Poliris means agreeing to its terms and privacy policy:

* Terms of Service: https://poliris.io/en/terms
* Privacy Policy: https://poliris.io/en/privacy

== Installation ==

1. Install and activate the plugin.
2. In Poliris, go to Project Settings → Connector → Connect WordPress, and copy the 8-character code.
3. In WordPress, open "Poliris" in the admin menu, paste the code, and click "Connect to Poliris".

== Frequently Asked Questions ==

= Does this plugin publish content automatically? =
No. Anything Poliris creates arrives as a draft - you decide when (or if) to publish it.

= How do I disconnect? =
Revoke the "Poliris" password from your profile, then deactivate the plugin. Or just delete the plugin — that revokes the password and clears all stored data automatically.

= Which SEO plugins are supported? =
Yoast SEO and Rank Math, for SEO titles and meta descriptions. Everything else — post content, titles, image alt text, drafts — works with no SEO plugin needed.

== Changelog ==

= 0.2.2 =
* Review feedback: the server-side pixel output buffer is now always explicitly closed. On WordPress 6.9+ the plugin uses the core template enhancement output buffer (no own buffer at all); on older versions the buffer opened on template_redirect is paired with an explicit flush on shutdown.
* Pairing error messages are no longer passed through the URL — only fixed notice codes are, with the message stored server-side.
* Uninstalling now removes all plugin options and revokes the "Poliris" Application Passwords, so deleting the plugin fully cuts the service's access.

= 0.2.1 =
* Review feedback: admin-page CSS enqueued via wp_add_inline_style, /status endpoint restricted to manage_options, direct legal-page URLs in the readme.

= 0.2.0 =
* Server-side fixes: approved page-level fixes (Open Graph, canonical, structured data, on-page text) are now applied to the rendered HTML on the server — the JavaScript snippet is no longer needed on WordPress sites.

= 0.1.0 =
* Initial release: pairing flow, status endpoint, Yoast/Rank Math SEO meta read-write.
