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 violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
    • Por violin101
      Caros amigos, saudações.

      Por favor, peço desculpa em recorrer a ajuda dos amigos referente uma dúvida.

      Tenho um Sistema que estou escrevendo em PHP + Codeigniter e a minha dúvida em Codeigniter é:
      Obs.: as tabela são em MySql

      => como faço para IMPORTAR o dado de uma Tabela para outra, as tabela são:
      ___________________Tabela de Pedido     =========== para ==========>    Tabela de Entrada de Lançamentos
      itens: codigoProduto | quantidade | valorUnitario  === importar===> itens: codigoProduto | quantidade | valorUnitario
       
      Estou tentando de várias formas, mas não estou conseguindo.

      Por favor, alguém pode me dar uma ajuda, explicação ou orientação.

      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida que não estou conseguindo resolver.

      Tenho 2 Tabelas, a 1ª.principal e a 2ª.secundária.

      Exemplo:
      Dados da 1ª Tabela - Peças e Equipamentos
      Dados da 2ª Tabela - Veículos.

      Seria isso:
      0010 - Pneu Aro 20
        [x] 001 - Corsa
        [_] 002 - Fusca
        [_] 003 - Palio
      Comentário:________________
       
      0100 - Óleo para Motor
         [x] 002 - Fusca
         [_] 003 - Palio
      Comentário:________________
       
      1030 - Lubrificante
         [_] 001 - Corsa
         [x] 003 - Palio
      Comentário:________________
       
      O meu problema está sendo quando preciso SALVAR/ATERAR o campo COMENTÁRIO, pois trata-se da 1ª.tabela.
       
      Gostaria salvar o COMENTÁRIO sem interferir nas seleção da 2ª. tabela.
       
      Grato,
       
      Cesar
       
       
       
       
       
    • Por Carcleo
      Estou começando no Laravel 11 e me deparei com um problema de belongsTo
       
      public function listOfClass(Request $request, StudentDisciplineClassroom $sdc) : ?string {         $all = $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();     dd($all->toArray());     $students = [];     foreach ($all as $student) {             $students[] =$student;     }       return response()->json($students)->getContent();     } isso

      Em studentRelation temos na tabela StudentDisciplineClassroom com os campos

      id(chave primaria)
      ra (chave estrangera que referencia o campo academic_registration na tabela de students)

      e a tabela student tem os campos

      id (chave primária)
      academic_registration (que vai ser refeenciada na tabela StudentDisciplineClassroom

      Mas na hora de fazer
      $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();
      O studentRelation retorna nulo

      Onde eu posso estar errando?
    • Por joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
×

Informação importante

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