| Current Path : /home/bechata/mp/wp-content/uploads/2022/ejn73c/ |
| Current File : /home/bechata/mp/wp-content/uploads/2022/ejn73c/utilities.php.tar |
home/bechata/mp/wp-content/plugins/jonradio-private-site/util/utilities.php 0000666 00000016040 15176501147 0023212 0 ustar 00 <?php
/**
* My Private Site by David Gewirtz, adopted from Jon ‘jonradio’ Pearkins
*
* Lab Notes: http://zatzlabs.com/lab-notes/
* Plugin Page: https://zatzlabs.com/project/my-private-site/
* Contact: http://zatzlabs.com/contact-us/
*
* Copyright (c) 2015-2020 by David Gewirtz
*/
// quick array name-of function
// from http://php.net/manual/en/function.key.php
function my_private_site_name_of(array $a, $pos) {
$temp = array_slice($a, $pos, 1, true);
return key($temp);
}
// from http://www.w3schools.com/php/filter_validate_url.asp
// returns a clean URL or false
// use === false to check it
function my_private_site_validate_url($url) {
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
return $url;
} else {
return false;
}
}
function my_private_site_obscurify_string($s, $char = '*', $inner_obscure = true) {
$length = strlen($s);
if ($length > 6) {
$segment_size = intval($length / 3);
$seg1 = substr($s, 0, $segment_size);
$seg2 = substr($s, $segment_size, $segment_size);
$seg3 = substr($s, $segment_size * 2, $length - ($segment_size * 2));
if ($inner_obscure) {
$seg2 = str_repeat($char, $segment_size);
} else {
$seg1 = str_repeat($char, $segment_size);
$seg3 = str_repeat($char, strlen($seg3));
}
$s = $seg1 . $seg2 . $seg3;
}
return $s;
}
// label display functions
function my_private_site_get_feature_promo($desc, $url, $upgrade = "UPGRADE", $break = '<BR>') {
$feature_desc = sanitize_text_field(htmlspecialchars($desc));
$promo = $break;
$promo .= '<span style="background-color:DarkGoldenRod; color:white;font-style:normal;text-weight:bold">';
$promo .= ' ' . $upgrade . ': ';
$promo .= '</span>';
$promo .= '<span style="color:DarkGoldenRod;font-style:normal;">';
$promo .= ' ' . $feature_desc . ' ';
$promo .= '<A target="_blank" HREF="' . $url . '">Learn more.</A>';
$promo .= '</span>';
return $promo;
}
function my_private_site_display_label($before = ' ', $message = 'BETA', $after = '', $background = '') {
if ($background == '') {
$background = 'darkgrey';
}
$label = $before . '<span style="background-color:' . $background . '; color:white;font-style:normal;text-weight:bold">';
$label .= ' ' . $message . ' ';
$label .= '</span>' . $after;
return $label;
}
function my_private_site_display_fail() {
return my_private_site_display_label(' ', 'FAIL', '', 'red');
}
function my_private_site_display_pass() {
return my_private_site_display_label(' ', 'PASS', '', 'green');
}
// *** EDD LICENSING ***
function my_private_site_store_url() {
return "https://zatzlabs.com";
}
function my_private_site_telemetry_url() {
return "https://zatzlabs.com";
}
/******************************************************************************************************/
function my_private_site_debug_log($message) {
$max_log_line_count = 200;
$debug_log = get_option('jr_ps_donate_log');
if (empty($debug_log)) {
$debug_log = array();
}
$timestamp = current_time('mysql');
$debug_log[] = $timestamp . ' ' . $message;
if (count($debug_log) > $max_log_line_count) {
$debug_log = array_slice($debug_log, -$max_log_line_count, 0);
}
update_option('jr_ps_donate_log', $debug_log);
}
function my_private_site_get_license_key($item) {
$license_key = '';
$license_array = unserialize(get_option('jr_ps_licenses'));
if (isset($license_array[$item])) {
$license_key = $license_array[$item];
}
return $license_key;
}
function my_private_site_confirm_license_key($key) {
if ($key == '') {
return false;
}
return true;
}
function my_private_site_edd_activate_license($product, $license, $url) {
my_private_site_debug_log('----------------------------------------');
my_private_site_debug_log('LICENSE ACTIVATION STARTED');
// retrieve the license from the database
$license = trim($license);
my_private_site_debug_log('Product: ' . $product);
my_private_site_debug_log('License key: ' . my_private_site_obscurify_string($license));
// Call the custom API.
$response = wp_remote_get(
add_query_arg(
array(
'edd_action' => 'activate_license',
'license' => $license,
'item_name' => urlencode($product)
// the name of our product in EDD
), $url), array(
'timeout' => 15,
'sslverify' => false,
));
// make sure the response came back okay
if (is_wp_error($response)) {
my_private_site_debug_log('Response error detected: ' . $response->get_error_message());
return false;
}
// decode the license data
$license_data = json_decode(wp_remote_retrieve_body($response));
// $license_data->license will be either "active" or "inactive" <-- "valid"
if (isset($license_data->license) && $license_data->license == 'active' || $license_data->license == 'valid') {
my_private_site_debug_log('License check value: ' . $license_data->license);
my_private_site_debug_log('License check returning valid.');
return 'valid';
}
my_private_site_debug_log('License check returning invalid.');
return 'invalid';
}
function my_private_site_edd_deactivate_license($product, $license, $url) {
my_private_site_debug_log('----------------------------------------');
my_private_site_debug_log('LICENSE DEACTIVATION STARTED');
// retrieve the license from the database
$license = trim($license);
my_private_site_debug_log('Product: ' . $product);
my_private_site_debug_log('License key: ' . my_private_site_obscurify_string($license));
// Call the custom API.
$response = wp_remote_get(
add_query_arg(
array(
'edd_action' => 'deactivate_license',
'license' => $license,
'item_name' => urlencode($product)
// the name of our product in EDD
), $url), array(
'timeout' => 15,
'sslverify' => false,
));
// make sure the response came back okay
if (is_wp_error($response)) {
my_private_site_debug_log('Response error detected: ' . $response->get_error_message());
return false;
}
// decode the license data
$license_data = json_decode(wp_remote_retrieve_body($response));
// $license_data->license will be either "active" or "inactive" <-- "valid"
if (isset($license_data->license) && $license_data->license == 'deactivated') {
my_private_site_debug_log('License check value: ' . $license_data->license);
my_private_site_debug_log('License check returning deactivated.');
return 'deactivated';
}
my_private_site_debug_log('License check returning invalid.');
return 'invalid';
}