Jump to content

[Résolu] Produit un peu trop dématérialisé


Recommended Posts

Salut à tous !

 

Je tente désespérément d'utiliser la vente d'article Produit dématérialisé (fichier zip)

J'ai eu beau parametre une date limite 2010-01-01, des quantités 999 , nombre de téléchargements 999 , nombre de jours 999,...

Mais du coté du client, lorsqu'on veut télécharger le fichier, on obtient toujours une fenêtre [removed]

avec "La date limite du produit est dépassé."

Pourquoi ce message ?

Au passage, un petit bug avec les accents

 

Et autre chose importante, on peut télécharger le fichier avant meme avant d'avoir payé (par cheque par exemple)

Share this post


Link to post
Share on other sites

Bonjour,

j'ai rencontré aussi ce problème.
Pour le corriger j'ai modifié le fichier /get-file.php ligne 72

$product_deadline = strtotime($info['download_deadline']);


devient

$productDownload = new ProductDownload($info['id_product_download']);
$product_deadline = strtotime($productDownload->getDeadline());
//$product_deadline = strtotime($info['download_deadline']);



en effet $info['download_deadline'] n'existe pas. Par contre je ne sais pas si la nouvelle valeur $product_deadline correspond à ce qui était recherché au départ. A vérifier donc.

Cordialement

Share this post


Link to post
Share on other sites

Merci Shag ca marche nikel !

 

Astuce pour les freenautes : oubliez pas de remettre php1 dans le .htaccess de download

Share this post


Link to post
Share on other sites
  • 1 month later...
  • 1 month later...

Correction :

en fait le problème ne vient pas de là,
Quand la commande est faite la date d'expiration est enregistrée. elle est calculée par la méthode ProductDownload::getDeadline().
le problème est que quand aucune limite n'est définie cette méthode renvoie le moment actuel. c'est donc le moment de création de la commande qui est enregistré comme date limite et donc c'est dans le passé quand on veut télécharger le produit.

en corrigeant la méthode c'est bon :

   public function getDeadline()
   {
       // TODO check if deadline is inferior than date_expiration
       if ($this->nb_days_accessible > 0)
       {
           $timestamp = strtotime('+'.$this->nb_days_accessible.' day');
           return date('Y-m-d H:i:s', $timestamp);
       }
       else
           return '0000-00-00 00:00:00';
   }

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More