Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果到达时间x,我需要能够隐藏Magento签出中的place order按钮_Javascript_Magento_Checkout - Fatal编程技术网

Javascript 如果到达时间x,我需要能够隐藏Magento签出中的place order按钮

Javascript 如果到达时间x,我需要能够隐藏Magento签出中的place order按钮,javascript,magento,checkout,Javascript,Magento,Checkout,我需要能够隐藏“下订单”按钮,如果最后期限是在结帐阶段达到。在这家商店里,顾客为他们的订单选择路线,然后从路线上取订单 当客户选择路线时,设置了截止时间的cookie,我需要在结账过程中实时将此cookie与当前时间进行比较,以确保客户无法向已关闭的路线下单 我有时间比较在PHP中工作,但它只获取页面加载的当前时间,因此如果有人在签出中花费太多时间,这可能是一个问题。我尝试过ajax脚本,并将它们放在button.phtml中,但由于某些原因,它们似乎不起作用。我确信这与magento的主题/文

我需要能够隐藏“下订单”按钮,如果最后期限是在结帐阶段达到。在这家商店里,顾客为他们的订单选择路线,然后从路线上取订单

当客户选择路线时,设置了截止时间的cookie,我需要在结账过程中实时将此cookie与当前时间进行比较,以确保客户无法向已关闭的路线下单


我有时间比较在PHP中工作,但它只获取页面加载的当前时间,因此如果有人在签出中花费太多时间,这可能是一个问题。我尝试过ajax脚本,并将它们放在button.phtml中,但由于某些原因,它们似乎不起作用。我确信这与magento的主题/文件结构有关,但我没有得到。

这是我目前的解决方案。这非常简单,但我现在的问题是,我无法弄清楚如何从服务器获取当前时间,因为javascript是客户端,它使用用户的时钟设置。做这件简单的事出人意料地困难。我想我很快就能弄明白

此代码驻留在button.phtml中


在客户端,您应该能够使用javascript实现这一点。到目前为止,它看起来非常简单。一旦实现完成,我将发布我的实现。
<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>