=== Brachmelder ===
Contributors: inqiro
Tags: security, woocommerce, plugins, site health, php
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Warns you in plain language when plugins were closed, abandoned or are outdated on WordPress.org, and when your PHP version loses security support.

== Description ==

Plugins that are closed or no longer maintained are one of the most common reasons websites and online shops get hacked. WordPress itself does not tell you when a plugin you use has been closed on WordPress.org. Brachmelder does, in plain language and without technical jargon.

Brachmelder is made for website and shop owners who are not developers, especially WooCommerce shops.

**What Brachmelder checks**

* **Closed plugins:** WordPress.org has closed the plugin, for example because of a security issue, a guideline violation or at the request of its developer. Plugins closed because of a security issue are marked as critical.
* **Abandoned plugins:** the last update is more than two years ago.
* **Outdated plugins:** the plugin has not been tested with any of the last three major WordPress versions.
* **PHP security support:** Brachmelder compares your server's PHP version with the official end of security support and tells you how much time is left. This check runs entirely on your server and works right after activation.

Plugins that are not listed on WordPress.org (premium plugins or plugins made for your site) are shown as "not checkable", without a warning.

**Nothing is sent without your consent**

After activation Brachmelder does not contact any server. Tools > Brachmelder first explains which data the plugin check would send and only starts after an administrator clicks "Enable check". You can disable the check at any time on the same page; the daily check is then removed and the stored results are deleted.

**Where you see the results**

Once the plugin check is enabled:

* **Tools > Brachmelder:** a traffic light overview. For every finding Brachmelder explains what the status means, what the risk is and what you should do.
* **Plugin list:** a status column next to each plugin.
* **Site Health:** a test for closed plugins. The test for the end of PHP security support is available even without enabling the plugin check.
* **Admin notice:** only when a plugin was closed because of a security issue. You can hide it; it comes back only if another critical finding appears.

Apart from that, Brachmelder shows a single quiet note after activation that points to its page; you can dismiss it.

**Possible alternatives**

For common closed WooCommerce plugins (for example EU VAT, EAN/GTIN, PDF invoices and wishlists) Brachmelder suggests actively maintained alternatives from WordPress.org. The list is shipped with the plugin; no request is made to fetch it.

**How the check works**

After you have enabled the check, Brachmelder checks your plugins right away and then once a day using WP-Cron, ten plugins at a time, and caches the results for 24 hours. You can start a check at any time with the "Check now" button. If WordPress.org cannot be reached, Brachmelder keeps the previous results and tries again later.

**Privacy**

Brachmelder contacts WordPress.org only after an administrator has enabled the plugin check. It then sends only the slugs (short names) of your installed plugins to the official WordPress.org API. No site URL, no personal data, no tracking, no telemetry, and no servers other than WordPress.org.

== External services ==

Only after an administrator has enabled the plugin check on Tools > Brachmelder, this plugin connects to the WordPress.org Plugins API (https://api.wordpress.org/plugins/info/1.2/) to find out whether your installed plugins are still available, when they were last updated and which WordPress version they were tested with.

* **What is sent:** the slug of each installed plugin (for example "woocommerce"), one request per plugin. The request does not include your site URL.
* **When:** right after the check is enabled, then once a day via WP-Cron, and when an administrator clicks "Check now" on Tools > Brachmelder. Nothing is sent before the check is enabled or after it is disabled. Plugins that declare an update source other than WordPress.org (Update URI header) are not sent.

The service is provided by WordPress.org: [Terms of Service](https://wordpress.org/about/tos/), [Privacy Policy](https://wordpress.org/about/privacy/).

== Installation ==

1. Install Brachmelder via Plugins > Add New, or upload the `brachmelder` folder to `/wp-content/plugins/`.
2. Activate the plugin.
3. Open Tools > Brachmelder. Your PHP status is shown right away. Read which data the plugin check sends and click "Enable check" to run the first check.

== Frequently Asked Questions ==

= Why do I have to enable the plugin check? =

To check your plugins, Brachmelder has to send their slugs to WordPress.org. It only does that after you have agreed. Until then, only the PHP check is available, which runs on your server.

= How do I stop the plugin check? =

Click "Disable check" on Tools > Brachmelder. Brachmelder then no longer contacts WordPress.org, removes the daily check and deletes the stored results.

= Does Brachmelder slow down my website? =

No. The check runs in the background, at most once a day, in small batches. Visitors of your website are not affected.

= What does "closed" mean? =

WordPress.org removes plugins from its directory if they have a security issue, violate the guidelines or if the developer asks for it. A closed plugin cannot be downloaded any more and you will not receive updates for it. If it was closed because of a security issue, replace it as soon as possible.

= A premium plugin is shown as "not checkable". Is that a problem? =

No. Brachmelder can only check plugins that are listed on WordPress.org. Make sure you receive updates for premium plugins from their vendor, for example with a valid licence.

= A plugin is shown as closed, but I bought it from a vendor. =

Rarely, a premium plugin uses the same folder name as a plugin on WordPress.org. Ask the vendor to add an "Update URI" header to their plugin; Brachmelder will then skip it.

= What happens if WordPress.org cannot be reached? =

Brachmelder keeps the previous results, shows a short note and tries again with the next scheduled check.

= Does Brachmelder change or deactivate plugins? =

No. Brachmelder only informs you. You decide what to do.

= Which PHP versions does Brachmelder know? =

Brachmelder ships with a table of the official end dates of PHP security support (php.net). It is updated with new releases of Brachmelder.

= What is removed when I delete Brachmelder? =

All results, the consent, settings, scheduled events and stored dismissals are removed.

== Screenshots ==

1. Tools > Brachmelder: traffic light overview, PHP support status and the plugins that need attention, explained in plain language.
2. A closed plugin: what the status means, what the risk is, what to do, and possible alternatives from WordPress.org.
3. Plugin list with a Brachmelder status badge for every plugin and the notice for a plugin closed because of a security issue.
4. Site Health test showing that the server's PHP version no longer receives security updates.
5. Before the first check: Brachmelder explains which data the plugin check sends to WordPress.org and waits until an administrator clicks "Enable check".

== Changelog ==

= 1.0.0 =
* First release: checks for closed, abandoned and outdated plugins (only after consent), PHP security support, Site Health tests, plugin list column and curated alternatives for WooCommerce plugins.

== Upgrade Notice ==

= 1.0.0 =
First release.
