Files
roi-theme/wp-content/plugins/advanced-ads-pro/modules/advanced-visitor-conditions/inc/conditions.js
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

97 lines
2.4 KiB
JavaScript
Executable File

(function() {
if ( typeof advanced_ads_pro_visitor_conditions !== 'object' ) {
return;
}
/**
* The cookie storage object.
*
* Since we cannot read expiration times of cookies, we use our own `expires` field to save expiration times.
* This allows us to update cookies without updating their expiration times, i.e. without prolonging them.
*
* @param {string} name The cookie name.
* @param {int} exdays The number of days before the cookie expires.
*/
function cookie_storage( name, exdays ) {
this.name = name;
this.exdays = exdays;
this.data = undefined;
this.expires = 0;
var cookie = advads.get_cookie( name );
if ( ! cookie ) {
this.data = cookie;
return;
}
try {
var cookie_obj = JSON.parse( cookie );
} catch ( e ) {
this.data = cookie;
return;
}
if ( typeof cookie_obj !== 'object' ) {
this.data = cookie;
return;
}
this.data = cookie_obj.data;
this.expires = parseInt( cookie_obj.expires, 10 );
}
/**
* Check if the cookie data exists.
*/
cookie_storage.prototype.exists = function() {
return typeof this.data !== 'undefined';
};
/**
* Save the cookie data.
*
* @param {mixed} data The cookie data.
*/
cookie_storage.prototype.save = function( data ) {
this.data = data;
get_unix_time_in_seconds = function() {
return Math.round( ( new Date() ).getTime() / 1000 );
}
var remaining_time = this.expires - get_unix_time_in_seconds();
// Check if the cookie is expired.
if ( remaining_time <= 0 ) {
remaining_time = ( this.exdays * 24 * 60 * 60 );
this.expires = get_unix_time_in_seconds() + remaining_time;
}
advads.set_cookie_sec(
this.name,
JSON.stringify( {
expires: this.expires,
data: this.data,
} ),
remaining_time
);
};
advanced_ads_pro_visitor_conditions.cookie_storage = cookie_storage;
// set cookie for referrer visitor condition.
var cookie = new cookie_storage( advanced_ads_pro_visitor_conditions.referrer_cookie_name, advanced_ads_pro_visitor_conditions.referrer_exdays );
if ( ! cookie.exists() && document.referrer !== '' ) {
cookie.save( document.referrer );
}
// Set cookie with page impressions.
var cookie = new cookie_storage( advanced_ads_pro_visitor_conditions.page_impr_cookie_name, advanced_ads_pro_visitor_conditions.page_impr_exdays );
if ( ! cookie.exists() ) {
cookie.save( 1 );
} else {
cookie.save( parseInt( cookie.data, 10 ) + 1 || 1 );
}
} )();