/home/techb158/l2hypotheques.com/wp-content/plugins/pyloncore/envato-verifier
Edit: /home/techb158/l2hypotheques.com/wp-content/plugins/pyloncore/envato-verifier/class-verifier.php (8065B)
admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('envato_nonce')
]);
}
public function settings_page() {
$verification = get_option('envato_purchase_code_status');
$is_verified = !empty($verification['verified']) && !empty($verification['data']);
$data = $is_verified ? $verification['data'] : [];
$purchase_code='';
if (isset($verification['data']['purchase_code']) && !empty($verification['data']['purchase_code'])) {
$purchase_code = $verification['data']['purchase_code'];
}
?>
'Empty purchase code.']);
}
if (empty($this->envato_token)) {
wp_send_json_error(['message' => 'Envato token is not set.']);
}
// Assume $code is already verified via Envato API earlier
$remote_url = esc_url('https://webdevcode.com/wp/pylon/dev-tools/verify-users.php');
$post_data = [
'purchase_code' => sanitize_text_field($code),
'security' => isset($_POST['security']) ? sanitize_text_field($_POST['security']) : '',
'domain' => esc_url(home_url('/')),
'email' => sanitize_email(get_bloginfo('admin_email')),
];
$post_args = [
'sslverify' => false,
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
'body' => $post_data,
];
$post_response = wp_remote_post($remote_url, $post_args);
// Handle request error
if (is_wp_error($post_response)) {
wp_send_json_error([
'message' => 'Error sending data to external server: ' . $post_response->get_error_message(),
]);
}
// Decode JSON response
$response_body = wp_remote_retrieve_body($post_response);
$remote_data = json_decode($response_body, true);
// Invalid JSON response
if (json_last_error() !== JSON_ERROR_NONE || !is_array($remote_data)) {
wp_send_json_error(['message' => 'Invalid response from verification server.']);
}
// Handle success
if (!empty($remote_data['status']) && $remote_data['status'] === 'success') {
// Save locally in WordPress options
update_option('envato_purchase_code_status', [
'verified' => true,
'data' => [
'purchase_code' => $post_data['purchase_code'],
'email' => $post_data['email'],
'domain' => $post_data['domain'],
'verified_at' => current_time('mysql'),
]
]);
wp_send_json_success([
'message' => 'Successfully verified and stored.',
'remote_response' => $remote_data,
]);
} elseif (!empty($remote_data['status']) && $remote_data['status'] === 'duplicate') {
wp_send_json_success([
'message' => 'Purchase code already exists in external server.',
'remote_response' => $remote_data,
]);
} else {
wp_send_json_error([
'message' => $remote_data['message'] ?? 'Unknown error from external server.',
'remote_response' => $remote_data,
]);
}
}
public function handle_revoke() {
check_ajax_referer('envato_nonce', 'nonce');
$option = get_option('envato_purchase_code_status');
$code = isset($option['data']['purchase_code']) ? sanitize_text_field($option['data']['purchase_code']) : '';
if (!$code) {
wp_send_json_error(['message' => 'No license code found to revoke.']);
}
// Remote revoke URL
$remote_url = 'https://webdevcode.com/wp/pylon/dev-tools/verify-users.php';
$post_data = [
'purchase_code' => $code,
'security' => 'revoke_secure_token', // Make sure to validate this on your server
'domain' => esc_url(home_url('/')),
'email' => sanitize_email(get_bloginfo('admin_email')),
];
$post_args = [
'sslverify' => false,
'method' => 'POST',
'timeout' => 30,
'blocking' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
'body' => $post_data,
];
$post_response = wp_remote_post($remote_url, $post_args);
if (is_wp_error($post_response)) {
wp_send_json_error(['message' => 'Remote revoke failed: ' . $post_response->get_error_message()]);
}
$response_code = wp_remote_retrieve_response_code($post_response);
$remote_data = json_decode(wp_remote_retrieve_body($post_response), true);
if ($response_code !== 200 || empty($remote_data['status']) || $remote_data['status'] !== 'success') {
wp_send_json_error(['message' => $remote_data['message'] ?? 'Unknown error revoking license.']);
}
// Delete local license data
delete_option('envato_purchase_code_status');
wp_send_json_success(['message' => 'Verification revoked successfully.']);
}
}