v0.7.3 — WordPress.org guideline 8 compliance + Privacy section

Adds the Update URI guard pattern so one source tree produces two
compliant build artifacts:

* Gitea install (default): `Update URI:` header points at
  git.davidtkeane.com → wp.org skips this plugin → self-hosted
  updater runs normally.
* WordPress.org submission zip (build script strips that line):
  header is empty → `radio_should_skip_custom_updater()` returns
  true → entire updater file short-circuits at load time → wp.org
  takes over update delivery as guideline 8 requires.

Settings page now guards the Updates panel render with
`function_exists()` because the panel function only exists when
the updater was allowed to load.

Also adds a dedicated `== Privacy ==` section to readme.txt
covering every outbound connection (none from the plugin itself;
SomaFM audio + 30s songs.json poll while playing) and adds an
explicit link to SomaFM's terms of use (somafm.com/legal/).

No user-visible behaviour change in either distribution.
This commit is contained in:
2026-05-30 04:21:25 +01:00
parent a298a4c217
commit a9d76decae
6 changed files with 105 additions and 11 deletions
+6 -2
View File
@@ -123,8 +123,12 @@ function radio_render_settings_page() {
</form>
<?php
// Updates panel — only manage_options users see it.
if ( current_user_can( 'manage_options' ) ) {
// Updates panel — only manage_options users see it, and only when
// the custom updater is active (i.e. self-hosted Gitea install,
// NOT when distributed via wp.org where wp.org handles updates).
// The function is undefined when updater.php short-circuited at
// load time per wp.org guideline 8 — hence the function_exists() check.
if ( current_user_can( 'manage_options' ) && function_exists( 'radio_render_updates_panel' ) ) {
radio_render_updates_panel();
}
?>