robotstxt-manager/readme.txt
2026-08-17 16:05:38 +00:00

222 lines
10 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=== Manager (by ROBOTSTXT) ===
Contributors: javiercasares, robotstxt
Tags: dashboard, catalog, updates, subscriptions, management
Requires at least: 4.4
Tested up to: 7.1
Stable tag: 1.3.0
Requires PHP: 8.0
Version: 1.3.0
License: GPL-3.0-or-later
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
Client-side dashboard for the ROBOTSTXT plugin ecosystem. Browse the catalog, see what's installed, and spot subscription issues — all from your own wp-admin.
== Description ==
Manager (by ROBOTSTXT) is a WordPress plugin that customers install on **their own** site. It connects to a remote Plugins Core installation (via REST API + account-level API key) and provides a single dashboard for the ROBOTSTXT plugin ecosystem:
* Lists the full plugin catalog with name, type (free/premium), price, and current version.
* For each catalog entry, shows the **local install state**: not installed, installed (inactive), up to date, or update available.
* Click a plugin's row to expand its description and a link to its website on the store.
* One-click actions: Install, Activate, and Update run on a classic page load with a standard admin notice (green/red) reporting the outcome; Buy redirects to checkout on the store site.
* Subscription health dashboard (Phase 4+): license expiring soon, payment failed, expired — surfaced as admin notices so issues are visible before updates silently stop.
This plugin does **not** re-implement the per-plugin update mechanism. Every ROBOTSTXT plugin bundles its own copy of the `Robotstxt_Core_Plugin_Updater` SDK, so updates keep working even if Manager is deactivated. Manager's value is visibility and one place to click.
**Requires Core 1.4.2+** on the store for descriptions in the catalog list (older Core versions still work; rows simply show no description).
== Using the plugin ==
= Settings =
Configure at **ROBOTSTXT → Settings**:
* **Store URL** — Base URL of the remote Plugins Core installation (defaults to `https://www.robotstxt.software`).
* **API Key** — Account-level API key issued by the ROBOTSTXT store. Encrypted before storage; masked in the UI (last 4 characters shown). Use the "Test connection" button to verify connectivity.
* **Catalog Cache (minutes)** — How long the catalog response is cached in a transient. Default: 60 minutes.
* **Data on Uninstall** — Opt-in checkbox. When enabled, all Manager options and transients are deleted on uninstall. Default: off.
= Main screen =
**ROBOTSTXT → Plugins** shows the catalog table:
| Column | Description |
|---|---|
| Plugin | Name from the store. The row below each plugin carries its website link and description (always visible). |
| Version | Current version in the store. |
| Requires WP / Requires PHP | Minimum requirements, checked against this site (warning icon when not met). |
| Price | "Free", or the annual price for premium plugins. |
| Action | Install / Activate / Update / Buy, depending on local state. |
| Status | Not installed / Installed (inactive) / Up to date / Update available (vX → vY). |
Below the table: a Support section and an explanation of Payments (annual subscriptions, automatic renewal, cancellation, Mollie processing).
Click "Refresh catalog" to force a fresh fetch from Core. Install, Activate, and Update run on a classic page load (no JavaScript) and report the result as a standard admin notice.
== Extra Configurations ==
No extra `define()` constants are required in `wp-config.php`. All configuration is done via the Settings page in wp-admin.
== Installation ==
= Automatic download =
Visit the plugin section in your WordPress, search for Manager (by ROBOTSTXT); download and install the plugin.
= Manual download =
Extract the contents of the ZIP and upload the contents to the `/wp-content/plugins/robotstxt-manager/` directory. Once uploaded, it will appear in your plugin list. Go to **ROBOTSTXT → Settings** to configure the Store URL and API key.
== Frequently Asked Questions ==
= Is this plugin compatible with WordPress Multisite? =
No. This plugin is intentionally not compatible with WordPress Multisite, matching the architecture of the rest of the ecosystem.
= What PHP version is required? =
PHP 8.0 or higher.
= Do I need Plugins Core installed on my site? =
No. Plugins Core runs on the ROBOTSTXT store site. This plugin talks to it remotely via REST API. You do not need Core, Mollie, or Sync installed locally.
= How is the API key stored? =
Encrypted at rest using AES-256-CBC with a key derived from your site's WordPress `AUTH_KEY` and `AUTH_SALT` constants. Never stored in plaintext, never logged, never exposed in any response.
== Compatibility ==
* WordPress: 4.4 - 7.1
* PHP: 8.0 - 8.5
== Changelog ==
= 1.3.0 =
_Release date: 2026-08-17_
* Catalog works without an API key (only the Store URL is needed); free plugins are listed and installable, and an info notice links to the store to register and get a personal key. Premium plugins show Buy only until subscribed; with an active subscription they show Install/Update.
= 1.2.1 =
_Release date: 2026-08-17_
* Plugin icons in the catalog rows (64×64, from the store's `icon_url`; white placeholder when missing).
= 1.2.0 =
_Release date: 2026-08-15_
* Subscription status (Phase 4): pills next to premium prices (Subscribed / N days left / Payment failed / Cancelled / Expired) and admin notices for failed payments, upcoming expiries, and expired-but-active plugins. Cached hourly from Core's /me/subscriptions.
= 1.1.0 =
_Release date: 2026-08-15_
* Cascade dependency install: required plugins (ecosystem or WordPress.org, e.g. Action Scheduler) are installed automatically before the plugin; "Requires:" hints in the catalog.
= 1.0.0 =
_Release date: 2026-08-15_
* Catalog redesign: columns Plugin · Version · Requires WP · Requires PHP · Price · Action · Status; Type merged into Price ("Free" or the annual price); per-plugin website link + description always open under each row; intro text after the title; Support and Payments sections below the table. First stable release.
= 0.6.0 =
_Release date: 2026-08-15_
* Spanish (es_ES) and Catalan (ca) translations for all admin strings (73 msgids, POT regenerated).
* "Refresh catalog" rate-limited to 6 per minute per user.
= 0.5.3 =
_Release date: 2026-08-15_
* Authenticated encryption (encrypt-then-MAC, matching Core 1.6.0) for the stored API key: tampered payloads fail closed; legacy-stored keys keep working and upgrade on next save.
= 0.5.2 =
_Release date: 2026-08-15_
* Fixed: updating (and installing) a plugin from the Manager catalog page failed with a fatal or a bare "Installation failed." Two defects in the panel's upgrader path: `Plugin_Upgrader` was never loaded in the `admin-post` context (it lives in its own file since the WordPress 5.3 class split, and only `class-wp-upgrader.php` was required), and the overwrite option was passed under the key `overwrite`, which current WordPress reads as `overwrite_package` — so the existing folder was never cleared. Verified end-to-end against the live store.
= 0.5.1 =
_Release date: 2026-08-15_
* Stabilization release: full code/security audit, compatibility scans, and documentation alignment. Real floors declared: WordPress 4.4+, PHP 8.0+ (previously declared 4.7/7.4).
* Connection test and catalog fetch now check the HTTP status code — an unauthorized or failing store reports an error instead of "Connected" / an empty catalog (non-200 responses are no longer cached).
* API-key field validates the key format before storing.
* Premium plugins are not offered as native updates when no API key is configured (they would only fail with HTTP 403).
* Domain normalization for premium package URLs strips only the literal `www.` prefix (hosts starting with "w" were mangled).
* Opt-in uninstall now also purges the WordPress update transient (premium entries carry the API key in their package URL) and drops a phantom option.
= 0.5.0 =
_Release date: 2026-08-14_
* Native update integration: catalog plugins now show WordPress's standard "Update available" badge and update through the regular wp-admin flow. Updates download from the ROBOTSTXT store (premium plugins authenticate via the account API key; requires Core 1.5.0+). "View details" modal data comes from the catalog. Refreshing the catalog also forces a fresh WordPress update check.
= 0.4.0 =
_Release date: 2026-08-14_
* Click-to-expand rows in the catalog: each plugin's description and a link to its website are shown in a detail row under the plugin name (CSS-only toggle, no JavaScript). Requires Core 1.4.2+ on the store.
= 0.3.1 =
_Release date: 2026-08-14_
* Default store URL is now `https://www.robotstxt.software`. Existing saved URLs are preserved.
= 0.3.0 =
_Release date: 2026-08-13_
* Classic install/activate/update flow: actions run on a full page load (`admin-post.php` with per-action-and-slug nonces) and report the outcome through standard admin notices (green success / red error), replacing the previous AJAX flow.
= 0.2.0 =
_Release date: 2026-08-13_
* Install action: free and premium plugins install directly from the catalog, authenticated with the account-level API key against Core's `/download` endpoint (requires Core 1.4.0+).
= 0.1.3 =
_Release date: 2026-08-12_
* Composer PHP requirement aligned to scan floor (>=7.4).
= 0.1.2 =
_Release date: 2026-08-12_
* Documentation refresh: readme.txt and changelog.txt aligned to the standard templates. Compatibility scan results documented.
= 0.1.1 =
_Release date: 2026-08-12_
* PHPCompatibility scan (5.68.5): real PHP floor is 7.2; project deliberately declares 8.4 to match the ecosystem.
* wp-compat scan against WordPress 4.7: zero errors. Real WP floor is ≤ 4.7; project declares 7.0 to match the ecosystem support window.
= 0.1.0 =
_Release date: 2026-08-12_
* Phase 1 scaffold.
= Previous versions =
If you want to see the full changelog, visit the [changelog.txt](https://git.robotstxt.es/ROBOTSTXT/robotstxt-manager/raw/branch/main/changelog.txt) file.
== Compliance ==
This plugin adheres to the following security measures and review protocols for each version:
* [WordPress Plugin Handbook](https://developer.wordpress.org/plugins/)
* [WordPress Plugin Security](https://developer.wordpress.org/plugins/wordpress-org/plugin-security/)
* [WordPress APIs Security](https://developer.wordpress.org/apis/security/)
* [WordPress Coding Standards](https://github.com/WordPress/WordPress-Coding-Standards)
* [Plugin Check (PCP)](https://wordpress.org/plugins/plugin-check/)