feat: enhance SitiWebUpdater2 with global license management and automatic updates
All checks were successful
Build & Release Plugin / release (push) Successful in 12s

This commit is contained in:
2026-02-01 03:46:14 +00:00
parent c279ea7247
commit 4a789363c5
3 changed files with 227 additions and 107 deletions

View File

@@ -10,10 +10,12 @@ class SitiLicenseValidator {
private $api_base_url = 'https://plugins.robert.ooo';
private $license_key;
private $hostname;
private $plugin_version;
public function __construct( $license_key = null, $hostname = null ) {
public function __construct( $license_key = null, $hostname = null, $plugin_version = null ) {
$this->license_key = $license_key ?: get_option( 'siti_license_key' );
$this->hostname = $hostname ?: parse_url( home_url(), PHP_URL_HOST );
$this->plugin_version = $plugin_version;
}
/**
@@ -37,6 +39,13 @@ class SitiLicenseValidator {
$this->hostname = $hostname;
}
/**
* Set the plugin version for reporting purposes
*/
public function set_plugin_version( $version ) {
$this->plugin_version = $version;
}
/**
* Verify the license
*
@@ -56,8 +65,9 @@ class SitiLicenseValidator {
'Content-Type' => 'application/json',
),
'body' => wp_json_encode( array(
'key' => $this->license_key,
'hostname' => $this->hostname,
'key' => $this->license_key,
'hostname' => $this->hostname,
'currentVersion' => $this->plugin_version,
) ),
'timeout' => 15,
) );
@@ -127,4 +137,4 @@ class SitiLicenseValidator {
// In practice, you might want to proxy this through WordPress
return $this->api_base_url . '/api/licenses/download?key=' . urlencode( $this->license_key ) . '&hostname=' . urlencode( $this->hostname ) . '&version=' . urlencode( $version );
}
}
}