Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Joob

Contagem de 30 Dias após Compra/Click

Recommended Posts

Boas Malta,

 

Básicamente queria fazer uma contagem de 30 dias, com desactivação do serviço em si, ou seja, Comprava e Fica do tipo "Faltam 30 Dias / Faltam 29 Dias, etc.." depois no fim dos dias, ficaria "Comprar Novamente" ..

Sei que não está bem, precisava era de uma ajuda.

 

Tenho desta forma a chamada

<?php if($account->SERVICO1) : ?>
                    
<font color="#BB0306">
  <?php
  if(isset($_POST['buy1']))
  {
    $buy1 = date('Y-m-d H:i:s');;
    $buy1->add(new DateInterval('P30D'));
    echo "" . $buy1 . "\n";
  }
  ?>

</font>

<?php else : ?>
<font color="#0C9620"><?= $language->store->SERVICO1->no_limit ?></font>
<?php endif; ?>

Já coloquei de outra forma só para colocar como se tivesse comprado e aparecesse a diferenca dos 30 dias. ou seja, a data ficava com + 30 dias do dia de hoje por exemplo.

Queria era adicionar a data da compra que quando clicassem no botão da compra de comprar, que adicionasse os dias que faltavam para renovar e quando chegasse ao fim, voltava novamente ao "Comprar" (exemplo)..

 

Tenho o botão da chamada assim

<a href="store/purchase/COMPRA1/<?=  Security::csrf_get_session_token('url_token'); ?>" class="label label-success label-store btn btn-dark" data-confirm="<?= $language->store->confirm_purchase; ?>">
  <?php printf($language->store->display->purchase); ?>
</a>

Se me conseguissem dar uma ajuda para colocar na database, acho que seria melhor para a configuração/registo do dia.

 

Não sei se me fiz entender.

Obrigado.

 

 

Abraço,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Joob.

 

O que você precisa é construir o objeto DateTime com a data referente à validade do serviço.

Em outras palavras, é basicamente isso:

<?php
// $data = new \DateTime();// se for agora
$data = new \DateTime( '2018-08-22 15:00:00' );// se for uma data do bd

$expira_em = ( clone $data )->modify( 'next month' );// ou "+30 days", se preferir limitar aos dias

echo $expira_em > $data  ? 'VALIDO AINDA' : 'EXPIROU';// uma forma simples de verificar a validade

echo "\nDias restantes: " . $data->diff( $expira_em )->days;

Resultado:

VALIDO AINDA
Dias restantes: 31

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas @Matteus,

 

Yap funcionou bacano, e simples.. 

 

Substitui o "EXPIROU" por variavel para fazer do genero.. quando chegar ao "$expirou" enviar um email automaticamente para o "$_POST['email'] (da pessoa que se registou)" e outro para mim de aviso "$to" .. 

 

Fazer algo deste jeito.. 

Chegou ao $expirou e envia um email para mim e para a pessoa registada.

 

Este code nao é o que tenho mas ve se daria para fazer algo assim

if(isset($_POST['expirou']))
{

$to      = 'name@yahoo.com';
$client  = '$_POST['email']';

$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@ourcompany.com' . "\r\n" .
    'Reply-To: webmaster@ourcompany.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

sendmail($to, $client,  $subject, $message, $headers);

 

Obrigado 

 

Abraco

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas Novamente,

 

Acho que ele não fazia os updates dos dias..

 

Tentei fazer deste formato ..

 

<script type="text/javascript">
  function countDown(){  
    $(".show").each(function() {
      var elm = $(this);
      var difTime=this.timestamp;  
      var day=0,hours=0,minutes=0,seconds=0;  
      if(difTime>0){  
        day=Math.floor(difTime/84600);  
        hours=(Math.floor((difTime/3600))%24) + day*24 ;  
        minutes=Math.floor(difTime/60)%60;  
        seconds=Math.floor(difTime)%60;   
      }  
      else{  
        elm.removeClass("show"); //for remove class show
      }  
      elm.html(hours+' H '+minutes+' M '+seconds+' S ');  
    });
  }  
  function countDown_onLoad(){  
    $(".show").each(function() {
      this.timestamp = parseInt(this.firstChild.nodeValue,10);
    });
    setInterval(countDown,1000);
  }  
  $(document).ready(function() {  
    countDown_onLoad();  
  });  
</script> 

<font color="#BB0306">
  <?php
    $show=mysql_query("SELECT * FROM `users` WHERE `time_ts` = 1");
    while ($array = mysql_fetch_array($show))
      { 
        $timeStop = $array['timeStop'];
        //$deltaTimeServer = strtotime($timeStop)-strtotime(date('Y-m-d H:i:s'));
        $deltaTimeServer = strtotime($timeStop)-time();
        echo "<td align = 'center'><div class=\"show\">".$deltaTimeServer."</div></td>";
      }
	?>
</font>

Ou seja, queria que quando se clicasse no botão

<a href="store/purchase/COMPRA1/<?=  Security::csrf_get_session_token('url_token'); ?>" class="label label-success label-store btn btn-dark" data-confirm="<?= $language->store->confirm_purchase; ?>">
  <?php printf($language->store->display->purchase); ?>
</a>

que a contagem por exemplo começasse no dia em que se clicou e que apartir dai contasse os 30 dias, 30,29,28,27, etc.. e que quando chegasse ao 0 dizia "expirou".. e que desse update ao mesmo no mysql.

 

Não sei se deu para entender ..

Obrigado.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.