Jump to content

[Résolu] Module cadeau d'anniversaire


Recommended Posts

Bonjour
Je suis inscrit sur ce forum depuis plus d'un an,je n'avais jamais posé de question depuis
ce temps.Étant débutant en informatique je pensais ne pas pouvoir comprendre les réponses
éventuelles à mes questions.
Maintenant cela va un peu mieux, je commence à comprendre la mécanique d'un site internet.
Donc voila ma question
Je viens d'installer le module Cadeau d'anniversaire, il fonctionne très bien. Avec ce code la validité du cadeau d'anniversaire est de 1 an
from = date('y-m-d');
to = (date('y')+1).date('-m-d');
Je voudrais ramener cette validité à 30 jours ou un mois. J'ai fait quelques essais avec différentes formules trouvées sur internet, mais rien ne fonctionne.
Merci à ceux qui auraient une réponse.
Cordialement

Link to comment
Share on other sites

Bonjour
Toujours pas résolu mon problème.
Je veux configurer 2 modules de la même manière, c'est à dire validité de 2 ou 3 mois à partir du jour de la commande ou du jour de l'anniversaire.
Le module loyalty-program.php (bon de fidélité, commande) fonctionne comme je le souhaite.
Par contre avec le même code date_from et date_to le module birthdaypresent.php me donne la bonne validité mais à partir du 01/01/1970, je ne sais pas ce que je dois changer ?
Ci joint copie des 2 modules

/* voucher creation and add to customer */
$voucher = new Discount();
$voucher->name = $voucherCode;
$voucher->id_discount_type = 2; // Discount on order (amount)
$voucher->id_customer = intval($cookie->id_customer);
$voucher->value = LoyaltyModule::getVoucherValue($customerPoints);
$voucher->quantity = 1;
$voucher->quantity_per_user = 1;
$voucher->cumulable = 1;
$voucher->cumulable_reduction = 1;
$dateFrom = time();
if (Configuration::get('PS_ORDER_RETURN'))
$dateFrom = $dateFrom + (60 * 60 * 24 * intval(Configuration::get('PS_ORDER_RETURN_NB_DAYS')));
$voucher->date_from = date('Y-m-d H:i:s', $dateFrom);
$voucher->date_to = date('Y-m-d H:i:s', $dateFrom + 7776000); // + 3 mois
$voucher->minimal = 0;
$voucher->active = 1;
$voucher->description[$cookie->id_lang] = Configuration::get('PS_LOYALTY_VOUCHER_DETAILS', intval($cookie->id_lang));
$voucher->save();

/* register order(s) which contribute to create this voucher */
LoyaltyModule::registerDiscount($voucher);


$voucher = new Discount();
$voucher->id_customer = $user['id_customer'];
$voucher->id_discount_type = Configuration::get('BIRTHDAY_DISCOUNT_TYPE');
$voucher->name = 'birthday';
$voucher->description[Configuration::get('PS_LANG_DEFAULT')] = $this->l('Your birthday present !');
$voucher->value = Configuration::get('BIRTHDAY_DISCOUNT_VALUE');
$voucher->quantity = 1;
$voucher->quantity_per_user = 1;
$voucher->cumulable = 1;
$voucher->cumulable_reduction = 1;
$voucher->date_from = date('Y-m-d H:i:s', $dateFrom);
$voucher->date_to = date('Y-m-d H:i:s', $dateFrom + 7776000); // + 3 mois
$voucher->minimal = Configuration::get('BIRTHDAY_MINIMAL_ORDER');
$voucher->active = true;
if ($voucher->add())
Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')), 'birthday', $this->l('Happy birthday!'), array('{firstname}' => $user['firstname'], '{lastname}' => $user['lastname']), $user['email'], NULL, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');

Merci pour votre aide

Link to comment
Share on other sites

Bonjour
Toujours pas résolu mon problème.
Je veux configurer 2 modules de la même manière, c’est à dire validité de 2 ou 3 mois à partir du jour de la commande ou du jour de l’anniversaire.
Le module loyalty-program.php (bon de fidélité, commande) fonctionne comme je le souhaite.
Par contre avec le même code date_from et date_to le module birthdaypresent.php me donne la bonne validité mais à partir du 01/01/1970, je ne sais pas ce que je dois changer ?
Ci joint copie des 2 modules


loyalty

/* voucher creation and add to customer */
   $voucher = new Discount();    
   $voucher->name = $voucherCode;
   $voucher->id_discount_type = 2; // Discount on order (amount)
   $voucher->id_customer = intval($cookie->id_customer);
   $voucher->value = LoyaltyModule::getVoucherValue($customerPoints);
   $voucher->quantity = 1;
   $voucher->quantity_per_user = 1;
   $voucher->cumulable = 1;
   $voucher->cumulable_reduction = 1;
   $dateFrom = time();
   if (Configuration::get('PS_ORDER_RETURN'))
       $dateFrom = $dateFrom + (60 * 60 * 24 * intval(Configuration::get('PS_ORDER_RETURN_NB_DAYS')));
   $voucher->date_from = date('Y-m-d H:i:s', $dateFrom);
   $voucher->date_to = date('Y-m-d H:i:s', $dateFrom + 7776000); // + 3 mois
   $voucher->minimal = 0;
   $voucher->active = 1;
   $voucher->description[$cookie->id_lang] = Configuration::get('PS_LOYALTY_VOUCHER_DETAILS', intval($cookie->id_lang));
   $voucher->save();

   /* register order(s) which contribute to create this voucher */
   LoyaltyModule::registerDiscount($voucher);

   Tools::redirect('modules/loyalty/loyalty-program.php');




module birthdaypresent.php


            $voucher = new Discount();
           $voucher->id_customer = $user['id_customer'];
           $voucher->id_discount_type = Configuration::get('BIRTHDAY_DISCOUNT_TYPE');
           $voucher->name = 'birthday';
           $voucher->description[Configuration::get('PS_LANG_DEFAULT')] = $this->l('Your birthday present !');
           $voucher->value = Configuration::get('BIRTHDAY_DISCOUNT_VALUE');
           $voucher->quantity = 1;
           $voucher->quantity_per_user = 1;
           $voucher->cumulable = 1;
           $voucher->cumulable_reduction = 1;
           $voucher->date_from = date('Y-m-d H:i:s', $dateFrom);
           $voucher->date_to = date('Y-m-d H:i:s', $dateFrom + 7776000); // + 3 mois
           $voucher->minimal = Configuration::get('BIRTHDAY_MINIMAL_ORDER');
           $voucher->active = true;
           if ($voucher->add())
               Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')), 'birthday', $this->l('Happy birthday!'), array('{firstname}' => $user['firstname'], '{lastname}' => $user['lastname']), $user['email'], NULL, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');



Merci pour vos réponses

Link to comment
Share on other sites

Ce module m'a l'air de fonctionner que sur les clients ayant déjà passés commande, ça ne semble pas marcher pour des clients déjà inscrits mais n'ayant pas commandé.

Quelqu'un a-t'il une piste pour faire fonctionner ce module à tous les clients inscrits (et non que les clients ayant commandés)?

Link to comment
Share on other sites

  • 4 weeks later...
Voila pour ramener la validité du bon d'anniversaire de 1 an à 2 mois, j'ai remplacé ces 2 lignes de code

     $voucher->date_from = date('y-m-d');
     $voucher->date_to = (date('y')+1).date('-m-d');

par ces 3 lignes

    $dateFrom = time();
    $voucher->date_from = date('Y-m-d H:i:s', $dateFrom);
    $voucher->date_to = date('Y-m-d H:i:s', $dateFrom + 5184000); // + 2 mois

maintenant ça fonctionne

Link to comment
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...