- 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>
82 lines
2.1 KiB
JavaScript
Executable File
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()
|
|
)}`;
|
|
});
|
|
})();
|