Javascript ежедневный отсчет времени отображается только для администраторов WordPress, а не для публики? - PullRequest
0 голосов
/ 04 марта 2019

На нашем сайте мы пытаемся выполнить сценарий, который ежедневно отсчитывает до полуночи, отображает сообщение, а затем «сбрасывает» в полночь.

В основном это сообщение «Порядок в 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 шагах от желания просто нажать «удалить», ха-ха

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...