Jump to content

Modifier le module Parrainage (Pas de réduction pour le filleul)


Recommended Posts

Bonsoir à tous,
Je pensais que cela existait déjà mais ce n'est apparemment pas le cas.

Aujourd'hui, avec le module existant (a moins que je me trompe) quand un parrain parraine son filleul, si celui ci commande, les deux reçoivent un bon de réduction de X euros ou X%.

Je trouve, mais suis je le seul à le penser? Qu'il est intéressant de pouvoir choisir que le filleul n'ait pas de réduction sur sa commande, mais que seul le parrain soit récompensé d'une réduction.
(C'est un peu le système du site vente privée, et je trouve ça pas mal..)

Bref est ce compliqué a faire comme modification ?
L'un de vous a une idée ?

Link to comment
Share on other sites

Bonjour,

Tu as 2 solutions pour ne pas attribuer un bon de réduction au filleul, soit tu court-circuites le lancement de la fonction d'attribution, soit tu cour-circuites le contenu de la fonction.

SOLUTION 1 - dans le fichier referralprogram.php, tu as ces lignes de code à la ligne 435

if ($referralprogram->registerDiscountForSponsored(intval($params['cookie']->id_currency)))
{
   $discount = new Discount(intval($referralprogram->id_discount));
   if (Validate::isLoadedObject($discount))
   {
       $data = array(
           '{firstname}' => $newCustomer->firstname,
           '{lastname}' => $newCustomer->lastname,
           '{voucher_num}' => $discount->name,
           '{voucher_amount}' => Tools::displayPrice(floatval(Configuration::get('REFERRAL_DISCOUNT_VALUE_'.intval($cookie->id_currency))), intval(Configuration::get('PS_CURRENCY_DEFAULT'))));

       Mail::Send(intval($cookie->id_lang), 'referralprogram-voucher', $this->l('Congratulations!'), $data, $newCustomer->email, $newCustomer->firstname.' '.$newCustomer->lastname, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');
   }
}



donc tu peux les effacer ou les mettre en commentaire avec /* code */


SOLUTION 2 - dans le fichier ReferralProgramModule.php, tu as à la ligne 65

public function registerDiscountForSponsored($id_currency)
{
   if (!intval($this->id_customer) OR intval($this->id_discount) > 0)
       return false;
   return $this->registerDiscount($this->id_customer, 'sponsored', $id_currency);
}



que tu remplaces par

public function registerDiscountForSponsored($id_currency)
{
   return true;
}




PS : je n'ai pas testé mais je pense que ça marche avec l'une des 2 modifs.....
tiens moi au courant.

Link to comment
Share on other sites

Bonjour,

Tu as 2 solutions pour ne pas attribuer un bon de réduction au filleul, soit tu court-circuites le lancement de la fonction d'attribution, soit tu cour-circuites le contenu de la fonction.

SOLUTION 1 - dans le fichier referralprogram.php, tu as ces lignes de code à la ligne 435

if ($referralprogram->registerDiscountForSponsored(intval($params['cookie']->id_currency)))
{
   $discount = new Discount(intval($referralprogram->id_discount));
   if (Validate::isLoadedObject($discount))
   {
       $data = array(
           '{firstname}' => $newCustomer->firstname,
           '{lastname}' => $newCustomer->lastname,
           '{voucher_num}' => $discount->name,
           '{voucher_amount}' => Tools::displayPrice(floatval(Configuration::get('REFERRAL_DISCOUNT_VALUE_'.intval($cookie->id_currency))), intval(Configuration::get('PS_CURRENCY_DEFAULT'))));

       Mail::Send(intval($cookie->id_lang), 'referralprogram-voucher', $this->l('Congratulations!'), $data, $newCustomer->email, $newCustomer->firstname.' '.$newCustomer->lastname, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');
   }
}



donc tu peux les effacer ou les mettre en commentaire avec /* code */



Alors j'ai pas trouvé ces lignes (je suis sous la version 1.3)
Donc du coup j'ai regardé la solution 2 :)


SOLUTION 2 - dans le fichier ReferralProgramModule.php, tu as à la ligne 65
public function registerDiscountForSponsored($id_currency)
{
   if (!intval($this->id_customer) OR intval($this->id_discount) > 0)
       return false;
   return $this->registerDiscount($this->id_customer, 'sponsored', $id_currency);
}



que tu remplaces par

public function registerDiscountForSponsored($id_currency)
{
   return true;
}




PS : je n'ai pas testé mais je pense que ça marche avec l'une des 2 modifs.....
tiens moi au courant.



ÇA MARCHE :D

Le parrain recoit le bon de réduction, mais le filleul lui ne reçoit rien!

D'après toi peut il y avoir des "effets secondaires" ? tel que des bugs a droit a gauche à cause de cette modif..

Je vais essayer de faire tous les tests possible pour confirmer que c'est bien LA solution ;)
En tous cas BRAVO et MERCI !!
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 years later...
  • 2 months later...

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...