Ir para conteúdo

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 landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

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