'.
/* translators: 1: Styling for red color and bold, 2: Styling for red color and bold ends, 3: List of Softaculous plugins that have expired */
sprintf(esc_html__('Your SoftWP license has %1$sexpired%2$s. Please renew it to continue receiving uninterrupted updates and support for %3$s.', 'cookieadmin'),
'',
'',
esc_html(implode(', ', $expired_plugins))
). '
';
wp_register_script('cookieadmin-pro-expiry-notice', '', ['jquery'], COOKIEADMIN_PRO_VERSION, true);
wp_enqueue_script('cookieadmin-pro-expiry-notice');
wp_add_inline_script('cookieadmin-pro-expiry-notice', '
jQuery(document).ready(function(){
jQuery("#cookieadmin-pro-expiry-notice").on("click", ".notice-dismiss", function(e){
e.preventDefault();
let target = jQuery(e.target);
let jEle = target.closest("#cookieadmin-pro-expiry-notice");
jEle.slideUp();
jQuery.post("'.admin_url('admin-ajax.php').'", {
cookieadmin_pro_security : "'.wp_create_nonce('cookieadmin_pro_admin_js_nonce').'",
action: "cookieadmin_pro_ajax_handler",
cookieadmin_act: "dismiss_expired_licenses",
}, function(res){
if(!res["success"]){
alert(res["data"]);
}
}).fail(function(data){
alert("There seems to be some issue dismissing this alert");
});
});
})');
}
}
function cookieadmin_pro_human_readable_time($timestamp){
$now = time();
$today_start = strtotime('today');
$yesterday_start = strtotime('yesterday');
if ($timestamp >= $today_start) {
return 'Today ' . wp_date('g:i A T', $timestamp);
} elseif ($timestamp >= $yesterday_start) {
return 'Yesterday ' . wp_date('g:i A T', $timestamp);
} else {
return wp_date('M j Y g:i A T', $timestamp); // e.g., Dec 6 2024 6:00 AM UTC
}
}
function cookieadmin_pro_scan_cookies($urls){
return call_user_func('\CookieAdminPro\Scanner::start_scan', $urls);
}
function cookieadmin_pro_cron_schedules($schedules){
$schedules['cookieadmin_every_month'] = array(
'interval' => DAY_IN_SECONDS * 30,
'display' => 'Once a Month'
);
return $schedules;
}
// Currently sending only single url - later will be a batch
function cookieadmin_pro_get_remaining_urls($urls){
$to_scan_urls = get_option('cookieadmin_to_scan_urls', []);
// NOTE: Treat attempted URLs as scanned upon successful response
$scanned_urls = $urls;
$remaining_urls = [];
if(!empty($to_scan_urls) && !empty($scanned_urls)){
$to_scan = array_values(array_unique(array_map('untrailingslashit', $to_scan_urls)));
$scanned = array_values(array_unique(array_map('untrailingslashit', $scanned_urls)));
$to_scan_urls = array_values(array_diff($to_scan, $scanned));
update_option('cookieadmin_to_scan_urls', $to_scan_urls);
$remaining_urls = array_slice($to_scan_urls, 0, 1);
}
return $remaining_urls;
}
function cookieadmin_pro_update_scan_count($res){
$ck_scan = get_option('cookieadmin_scan');
$count = !empty($ck_scan['count']) ? $ck_scan['count'] : 0;
$count = $count + array_sum(array_values($res));
update_option('cookieadmin_scan', [
'status' => 2,
'success' => true,
'count' => $count,
'update' => time()
]);
}
function cookieadmin_pro_defaults(){
global $cookieadmin;
$cookieadmin['gpc_message_default'] = __('GPC signal honored', 'cookieadmin');
$cookieadmin['gpc_override_warning_default'] = __('I understand that Global Privacy Control (GPC) will be overridden and I allow this site to apply my selected consent preferences.', 'cookieadmin');
}