На нашем сайте мы пытаемся выполнить сценарий, который ежедневно отсчитывает до полуночи, отображает сообщение, а затем «сбрасывает» в полночь.
В основном это сообщение «Порядок в X1, Get By».X2 "
Скрипт вычисляет X1 как XX часов XX минут до полуночи.X2 - это 5 дней после сегодняшнего дня (если сегодня 1-е число, то 2-е + 5 даст вам 7-е, за исключением воскресенья, тогда он автоматически перейдет к понедельнику сразу после).
Проблема, однако, в том, что по какой-то причине этот сценарий отказывается загружаться для интерфейсного пользователя, но как зарегистрированный администратор я вижу код.
<!-- Allows to add estimated delivery time to the product and/or cart page -->
<div class="dailytimer"><strong>Order within <span id='mycountdown' style="color: #FF0000;"></span>, Get it by <span id="delDate" style="color: #FF0000;"></span></strong></div>
<script>
// First part of output
var myreset = [00,00,00]; // at what time to reset - 19:40:00
// Added myCountDownDiv variable to prevent jquery from walking the DOM o every update
var myCountDownDiv = document.getElementById('mycountdown');
var mycountdown = startCountdown();
function startCountdown(){
var enddate = calculateEndDate();
return setInterval(function(){tickTock(calculateStartDate(),enddate)}, 1000);
}
function calculateStartDate(){ //this needs to be edited if using the server time
return new Date();
}
function calculateEndDate(){
var enddate = new Date();
enddate.setHours(myreset[0]);
enddate.setMinutes(myreset[1]);
enddate.setSeconds(myreset[2]);
return enddate;
}
function tickTock(startdate, enddate){
var diff = enddate.getTime() - startdate.getTime();
d = diff >= 0 ? diff : diff + 24*3600*1000;
var h = Math.floor(d / 3600 / 1000);
var m = Math.floor(d / 60 / 1000) - 60*h;
var s = Math.floor(d / 1000) - 3600*h - 60*m;
printCountdown(h,m,s);
}
function pluralize(word,count){
return (count > 1) ? word+'s ' : word+' ';
}
function printCountdown(h,m,s){
// Updated string concatination. 'and' was deisplayed after the seconds value
var t = h + pluralize(' hour',h)+ m+pluralize(' minute',m);
myCountDownDiv.innerText = t;
// Removed jquery
//$('#mycountdown').html(t);
}
var fromDate = new Date();
fromDate.setDate(fromDate.getDate() + 6);
if (fromDate.is().saturday() || fromDate.is().sunday()) {
fromDate = fromDate.next().monday();
}
document.getElementById('delDate').innerHTML = fromDate.toString('ddd MMMM dS');
</script>
Он использует файл даты JS, который я нашел в Интернетерассчитать даты.Я также почти уверен, что есть лучший способ для нас «вставить» код в страницу, не копируя его буквально в html-виджет внутри elementor (мы используем его как конструктор страниц), но у меня просто нетподумал об одном от руки.
Любая помощь будет принята с благодарностью, так как я нахожусь в 5 шагах от желания просто нажать «удалить», ха-ха