Мне нужно иметь возможность скрыть кнопку заказа места в кассе Magento, если время x достигнуто - PullRequest
0 голосов
/ 28 декабря 2011

Мне нужно иметь возможность скрыть кнопку «Разместить заказ», если на этапе оформления заказа достигнут крайний срок. В этом магазине клиенты выбирают маршруты для своих заказов, а затем они выбирают свои заказы из маршрута.

Когда клиент выбирает маршрут, для которого установлен файл cookie с указанием крайнего срока, мне нужно сравнить этот файл cookie с текущим временем в режиме реального времени во время оформления заказа, чтобы убедиться, что клиенты не могут размещать заказы на закрытом маршруте. 1003 *

У меня есть время для сравнения, работающее в PHP, но оно получает только текущее время при загрузке страницы, поэтому, если кто-то тратит слишком много времени на оформление заказа, это может быть проблемой. Я попробовал ajax-скрипты и поместил их в button.phtml, но по какой-то причине они, похоже, не работают. Я уверен, что это связано с темой / структурой файлов magento, которую я не получаю.

1 Ответ

0 голосов
/ 30 декабря 2011

Это мое решение до сих пор. Это очень просто, но моя проблема сейчас в том, что я не могу понять, как получить текущее время с сервера, так как javascript на стороне клиента использует настройки пользователя для часов. Удивительно сложно сделать эту простую вещь. Я думаю, что могу понять это достаточно скоро.

Этот код находится в button.phtml

<script>
  document.getElementById('deadline_reached').style.visibility = 'hidden';  

  function validateDeadline() {

   <?php 

    date_default_timezone_set('Europe/Helsinki');
    $deadlineTimeHuman=$_COOKIE["deadlineDate"];
    $deadlineTimeUnixTimestamp = strtotime($deadlineTimeHuman);
     ?>

  // Current date 
  var timeNowCompare = Math.round(new Date().getTime() / 1000) //Current date is changed to unix timestamp without milliseconds os it matches with php's timestamp format.

  //Cookie's deadline time which has been changed to timestamp is loaded into variable.
  var deadlineDate = "<?php echo $deadlineTimeUnixTimestamp ?>";

  if (timeNowCompare < deadlineDate) // What happens when we are in schedule.
  { 
  alert("Now < Deadline Order can be placed \n"+"n:"+ timeNowCompare +"\nd:"+deadlineDate); // This is for debugging
  }
  else if (timeNowCompare > deadlineDate) // What happens when current time is higher than deadline.
  { 
  alert("Now > Deadline Order cant be placed \n"+"n:"+ timeNowCompare +"\nd:"+deadlineDate); // This is for debugging
  document.getElementById('place_order_btn').style.visibility = 'hidden';  
  document.getElementById('deadline_reached').style.visibility = 'visible'; 

  }     
}  

window.setInterval(function(){
  validateDeadline();
 }, 10000);
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...