Files
roi-theme/wp-content/plugins/ajax-search-pro/src/server/Misc/PluginLicense.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

96 lines
2.5 KiB
PHP
Executable File

<?php /** @noinspection HttpUrlsUsage */
namespace WPDRMS\ASP\Misc;
use WP_Error;
if ( !defined('ABSPATH') ) {
die('-1');
}
class PluginLicense {
static $url = 'https://update.wp-dreams.com/';
private const OPTION_NAME = 'asp_license_data';
public static function activate( $license_key ) {
$url = isset($_SERVER['HTTP_HOST']) ? rawurlencode($_SERVER['HTTP_HOST']) : 'https://unkwown.domain';
$key = rawurlencode( $license_key );
$url = self::$url . "license/activate/$key/?url=" . $url;
$response = wp_remote_post( $url );
if ( $response instanceof WP_Error ) {
return false;
}
$data = json_decode( $response['body'], true );
// something went wrong
if ( empty($data) ) {
return false;
}
if ( isset($data['status']) && $data['status'] == 1 ) {
update_site_option(
self::OPTION_NAME,
array(
'key' => $license_key,
'host' => $_SERVER['HTTP_HOST'] ?? 'unkwown.domain',
)
);
}
return $data;
}
public static function deactivate( $remote_check = true ) {
$data = false;
if ( $remote_check ) {
$key = self::isActivated();
if ( false !== $key ) {
$url = isset($_SERVER['HTTP_HOST']) ? rawurlencode($_SERVER['HTTP_HOST']) : 'unkwown.domain';
$key = rawurlencode($key);
$url = self::$url . "license/deactivate/$key?url=" . $url;
$response = wp_remote_request($url, array( 'method' =>'PATCH' ));
if ( $response instanceof WP_Error ) {
return false;
}
$data = json_decode($response['body'], true);
}
}
delete_site_option(self::OPTION_NAME);
return $data;
}
public static function isActivated( bool $remote_check = false ) {
self::convertToSiteOption();
$data = get_site_option(self::OPTION_NAME);
if ( $data === false || !isset($data['host']) || !isset($data['key']) ) {
return false;
}
if ( $remote_check ) {
$url = isset($_SERVER['HTTP_HOST']) ? rawurlencode($_SERVER['HTTP_HOST']) : 'unknown.domain';
$key = rawurlencode( $data['key'] );
$url = self::$url . "license/is_active/$key/?url=" . $url;
$response = wp_remote_get( $url );
if ( $response instanceof WP_Error ) {
return false;
}
$rdata = json_decode( $response['body'], true );
return $rdata['status'] ? $data['key'] : false;
}
return $data['key'];
}
private static function convertToSiteOption() {
// Old option with the old key
$data = get_option('asp_update_data');
if ( $data !== false ) {
update_site_option(self::OPTION_NAME, $data);
delete_option('asp_update_data');
}
}
}