License system a updates

Affinite_Updater integrace

Plugin používá Affinite_Updater library pro remote update checks a license key handling. Updater je instantiated v affinite-wp-affiliate.php:

require_once __DIR__ . '/updater/Affinite_Updater.php';
new Affinite_Updater('affinite-wp-affiliate');

License key storage

  • Option key: affinite-wp-affiliate-license-key (pomlčky, ne underscores)
  • Default: prázdné
  • Použití: Updater ho posílá při kontrole updatů jako query parameter.

Update check flow

  1. WP cron volá pre_set_site_transient_update_plugins.
  2. Updater udělá HTTP GET na {repository_server}?plugin=affinite-wp-affiliate&license={key}.
  3. Server vrátí JSON s aktuální verzí, download URL a is_valid_license flag.
  4. Pokud je dostupný update, zobrazí se v Plugins admin screen.

Activate plugin API

$updater = new Affinite_Updater('affinite-wp-affiliate');
$success = $updater->activate_plugin('YOUR-LICENSE-KEY');

if ($success) {
    // Klíč byl validní, uložil se do option
    echo 'License activated';
} else {
    echo 'Invalid license key';
}

Stav v aktuální verzi

  • GPL v2 licence v plugin headeru.
  • Affinite_Updater integrace aktivní.
  • License storage + remote check.
  • activate_plugin() API existuje.
  • Admin UI pro license key ještě chybí — kandidát pro budoucí release.
  • Feature gates bez aktivní licence — nejsou implementovány.

Workaround pro license activation

Do té doby, než vznikne admin UI, nastavte license key přes WP CLI:

wp option update affinite-wp-affiliate-license-key "YOUR-KEY"

Nebo přes mu-plugin handler:

// mu-plugins/license-bootstrap.php
add_action('init', function() {
    if (!get_option('affinite-wp-affiliate-license-key')) {
        update_option('affinite-wp-affiliate-license-key', 'YOUR-KEY');
    }
});

Budoucí plány

  • Admin UI v Settings tabu pro zadání + validaci klíče.
  • Status display — zobrazení valid/invalid + datum expirace.
  • Feature gates pro premium funkce (REST API rate limit, multi-site sync, atd.).
  • Skill /plugin-add-license — automatizovaná implementace všech tří.