Files
roi-theme/wp-content/plugins/advanced-ads-pro/modules/ads-by-hours/assets/frontend.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

82 lines
2.1 KiB
JavaScript
Executable File

(function () {
'use strict';
// eslint-disable-next-line camelcase,no-undef
if (!window.advanced_ads_pro || !window.advads_pro_utils) {
return;
}
const date = new Date();
/**
* JS version of WP's PHP zeroise (with threshold fixed to 2)
*
* @param {string|number} num the number
* @return {string} number string with at most one leading zero
*/
const zeroise = function (num) {
num = typeof num !== 'string' ? num.toString() : num;
return num.length < 2 ? `0${num}` : num;
};
// add start and end time into passive CB ad info.
document.addEventListener('advanced-ads-passive-cb-ad-info', function (ev) {
if (typeof ev.detail.adInfo.by_hours === 'undefined') {
return;
}
const hours = ev.detail.adInfo.by_hours.split('_');
ev.detail.ad.by_hours = { start: hours[0], end: hours[1] };
});
// can display check.
document.addEventListener(
'advanced-ads-passive-cb-can-display',
function (ev) {
if (!ev.detail.adInfo.by_hours || !ev.detail.canDisplay.display) {
// no specific hours or already hidden by another check.
return;
}
const now = parseInt(
zeroise(date.getHours()) + zeroise(date.getMinutes()),
10
);
const start = parseInt(ev.detail.adInfo.by_hours.start, 10);
const end = parseInt(ev.detail.adInfo.by_hours.end, 10);
const canDisplay = {
show:
start < end
? now > start && now < end
: now > start || now < end,
};
// allow filtering of canDisplay for passive cb.
document.dispatchEvent(
new CustomEvent('advanced-ads-can-display-ads-by-hours', {
detail: {
canDisplay,
},
})
);
ev.detail.canDisplay.display = canDisplay.show;
if (!canDisplay.show) {
// eslint-disable-next-line camelcase,no-undef
advads_pro_utils.log(
'passive ad id',
ev.detail.adInfo.id,
'cannot be displayed: by_hours'
);
}
}
);
// Edit the ajax cb call payload
document.addEventListener('advanced-ads-ajax-cb-payload', function (ev) {
ev.detail.payload.browserTime = `${zeroise(date.getHours())}:${zeroise(
date.getMinutes()
)}`;
});
})();