Enhance Subscriptions, Affiliates, and Software Distribution modules
This commit is contained in:
@@ -608,7 +608,7 @@ class LicenseManager
|
||||
/**
|
||||
* Validate license (check if valid without activating)
|
||||
*/
|
||||
public static function validate($license_key)
|
||||
public static function validate($license_key, $domain = null)
|
||||
{
|
||||
$license = self::get_license_by_key($license_key);
|
||||
|
||||
@@ -626,8 +626,31 @@ class LicenseManager
|
||||
$subscription_status = self::get_order_subscription_status($license['order_id']);
|
||||
$is_subscription_valid = $subscription_status === null || in_array($subscription_status, ['active', 'pending-cancel']);
|
||||
|
||||
// Check domain activation if domain is provided
|
||||
$is_domain_active = true;
|
||||
if ($domain) {
|
||||
global $wpdb;
|
||||
$table = $wpdb->prefix . self::$activations_table;
|
||||
$activation = $wpdb->get_var($wpdb->prepare(
|
||||
"SELECT id FROM $table WHERE license_id = %d AND domain = %s AND status = 'active' LIMIT 1",
|
||||
$license['id'],
|
||||
$domain
|
||||
));
|
||||
if (!$activation) {
|
||||
$is_domain_active = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($domain && !$is_domain_active) {
|
||||
return [
|
||||
'valid' => false,
|
||||
'error' => 'domain_not_activated',
|
||||
'message' => __('License is not activated for this domain', 'woonoow'),
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'valid' => $license['status'] === 'active' && !$is_expired && $is_subscription_valid,
|
||||
'valid' => $license['status'] === 'active' && !$is_expired && $is_subscription_valid && $is_domain_active,
|
||||
'license_key' => $license['license_key'],
|
||||
'status' => $license['status'],
|
||||
'activation_limit' => (int) $license['activation_limit'],
|
||||
@@ -639,6 +662,7 @@ class LicenseManager
|
||||
'is_expired' => $is_expired,
|
||||
'subscription_status' => $subscription_status,
|
||||
'subscription_active' => $is_subscription_valid,
|
||||
'domain_active' => $is_domain_active,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user