HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wp-seopress/assets/js/seopress-promotions.min.js
(function($){'use strict';var SEOPressPromotions={init:function(){this.bindEvents();this.initModal()},bindEvents:function(){$(document).on('click','.promo-dismiss',this.handleDismiss);$(document).on('click','.promo-cta',this.handleCtaClick);$(document).on('change','#seopress-toggle-promotions',this.handleToggleAll);$(document).on('click','[data-dismiss="license-modal"]',this.handleModalDismiss);$(document).on('click','.seopress-modal-overlay',this.handleOverlayClick)},handleDismiss:function(e){e.preventDefault();e.stopPropagation();var $button=$(this);var $promo=$button.closest('.seopress-promo-banner, .seopress-promo-card, .seopress-metabox-promo-banner, .seopress-contextual-promo');var promoId=$button.data('promo-id')||$promo.data('promo-id');var duration=$button.data('dismiss-duration')||30;if(!promoId){console.warn('SEOPress Promotions: No promo ID found for dismissal.');return}
$button.prop('disabled',!0).css('opacity','0.5');SEOPressPromotions.trackStat(promoId,'dismiss');$.ajax({url:ajaxurl,type:'POST',data:{action:'seopress_dismiss_promotion',promo_id:promoId,duration:duration,_ajax_nonce:seopressPromotions.dismiss_nonce},success:function(response){if(response.success){var isTopBanner=$promo.hasClass('seopress-promo-banner');$promo.slideUp(300,function(){$(this).remove();if(isTopBanner){$('body').removeClass('has-promo-banner')}
var $panel=$('#seopress-promotions-panel');if($panel.length&&$panel.find('.seopress-promo-card').length===0&&$panel.find('.affiliate-card').length===0){$panel.slideUp(300,function(){$(this).remove()})}})}else{$button.prop('disabled',!1).css('opacity','1');console.error('SEOPress Promotions: Failed to dismiss promotion.',response)}},error:function(xhr,status,error){$button.prop('disabled',!1).css('opacity','1');console.error('SEOPress Promotions: AJAX error.',error)}})},handleCtaClick:function(e){var $link=$(this);var $promo=$link.closest('.seopress-promo-banner, .seopress-promo-card, .seopress-metabox-promo-banner, .seopress-contextual-promo');var promoId=$promo.data('promo-id');if(!promoId){return}
SEOPressPromotions.trackStat(promoId,'click')},trackStat:function(promoId,action){if(!seopressPromotions.stats_endpoint){return}
if(navigator.sendBeacon){var data=new FormData();data.append('ad_id',promoId);data.append('action',action);navigator.sendBeacon(seopressPromotions.stats_endpoint,data)}else{fetch(seopressPromotions.stats_endpoint,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({ad_id:promoId,action:action}),keepalive:!0}).catch(function(){})}},handleToggleAll:function(e){var $checkbox=$(this);var disableAll=$checkbox.is(':checked')?'1':'0';$.ajax({url:ajaxurl,type:'POST',data:{action:'seopress_toggle_promotions',disable_all:disableAll,_ajax_nonce:seopressPromotions.toggle_nonce},success:function(response){if(response.success){if(disableAll==='1'){$('.seopress-promo-banner, .seopress-promotions, .seopress-contextual-promo').slideUp(300)}else{location.reload()}}},error:function(xhr,status,error){console.error('SEOPress Promotions: AJAX error.',error);$checkbox.prop('checked',!$checkbox.is(':checked'))}})},initModal:function(){var $modal=$('#seopress-license-modal');if(!$modal.length){return}
var dismissedAt=localStorage.getItem('seopress_license_modal_dismissed');if(dismissedAt){var dismissedDate=new Date(parseInt(dismissedAt,10));var now=new Date();var hoursDiff=(now-dismissedDate)/(1000*60*60);if(hoursDiff<24){$modal.addClass('hidden');return}}
setTimeout(function(){$modal.removeClass('hidden')},1000)},handleModalDismiss:function(e){e.preventDefault();var $modal=$('#seopress-license-modal');localStorage.setItem('seopress_license_modal_dismissed',Date.now().toString());$modal.css({'opacity':'0','transition':'opacity 0.3s ease'});setTimeout(function(){$modal.addClass('hidden').css('opacity','1')},300)},handleOverlayClick:function(e){if($(e.target).hasClass('seopress-modal-overlay')){$('[data-dismiss="license-modal"]').trigger('click')}},};$(document).ready(function(){SEOPressPromotions.init()})})(jQuery)