Пример #1
0
 /**
  * Hook called on creation customer account
  * Create a discount for the customer if sponsorised
  */
 public function hookCreateAccount($params)
 {
     $newCustomer = $params['newCustomer'];
     if (!Validate::isLoadedObject($newCustomer)) {
         return false;
     }
     $postVars = $params['_POST'];
     if (empty($postVars) or !isset($postVars['referralprogram']) or empty($postVars['referralprogram'])) {
         return false;
     }
     $sponsorEmail = $postVars['referralprogram'];
     if (!Validate::isEmail($sponsorEmail) or $sponsorEmail == $newCustomer->email) {
         return false;
     }
     $sponsor = new Customer();
     if ($sponsor = $sponsor->getByEmail($sponsorEmail, NULL, $this->context)) {
         include_once dirname(__FILE__) . '/ReferralProgramModule.php';
         /* If the customer was not invited by the sponsor, we create the invitation dynamically */
         if (!($id_referralprogram = ReferralProgramModule::isEmailExists($newCustomer->email, true, false))) {
             $referralprogram = new ReferralProgramModule();
             $referralprogram->id_sponsor = (int) $sponsor->id;
             $referralprogram->firstname = $newCustomer->firstname;
             $referralprogram->lastname = $newCustomer->lastname;
             $referralprogram->email = $newCustomer->email;
             if (!$referralprogram->validateFields(false)) {
                 return false;
             } else {
                 $referralprogram->save();
             }
         } else {
             $referralprogram = new ReferralProgramModule((int) $id_referralprogram);
         }
         if ($referralprogram->id_sponsor == $sponsor->id) {
             $referralprogram->id_customer = (int) $newCustomer->id;
             $referralprogram->save();
             if ($referralprogram->registerDiscountForSponsored((int) $params['cookie']->id_currency)) {
                 $cartRule = new CartRule((int) $referralprogram->id_cart_rule);
                 if (Validate::isLoadedObject($cartRule)) {
                     $data = array('{firstname}' => $newCustomer->firstname, '{lastname}' => $newCustomer->lastname, '{voucher_num}' => $cartRule->code, '{voucher_amount}' => Configuration::get('REFERRAL_DISCOUNT_TYPE') == 2 ? Tools::displayPrice((double) Configuration::get('REFERRAL_DISCOUNT_VALUE_' . (int) $this->context->currency->id), (int) Configuration::get('PS_CURRENCY_DEFAULT')) : (double) Configuration::get('REFERRAL_PERCENTAGE') . '%');
                     Mail::Send((int) $cookie->id_lang, 'referralprogram-voucher', Mail::l('Congratulations!', (int) $cookie->id_lang), $data, $newCustomer->email, $newCustomer->firstname . ' ' . $newCustomer->lastname, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), null, null, dirname(__FILE__) . '/mails/');
                 }
             }
             return true;
         }
     }
     return false;
 }
Пример #2
0
 /**
  * Hook called on creation customer account
  * Create a discount for the customer if sponsorised
  */
 public function hookCreateAccount($params)
 {
     global $cookie;
     $newCustomer = $params['newCustomer'];
     if (!Validate::isLoadedObject($newCustomer)) {
         return false;
     }
     $postVars = $params['_POST'];
     if (empty($postVars) or !isset($postVars['referralprogram']) or empty($postVars['referralprogram'])) {
         return false;
     }
     $sponsorEmail = $postVars['referralprogram'];
     if (!Validate::isEmail($sponsorEmail) or $sponsorEmail == $newCustomer->email) {
         return false;
     }
     $sponsor = new Customer();
     if ($sponsor = $sponsor->getByEmail($sponsorEmail)) {
         if ($id_referralprogram = ReferralProgramModule::isEmailExists($newCustomer->email, true, false)) {
             $referralprogram = new ReferralProgramModule($id_referralprogram);
             if ($referralprogram->id_sponsor == $sponsor->id) {
                 $referralprogram->id_customer = $newCustomer->id;
                 $referralprogram->save();
                 if ($referralprogram->registerDiscountForSponsored()) {
                     $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}' => floatval(Configuration::get('REFERRAL_DISCOUNT_VALUE')));
                         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/');
                     }
                 }
                 return true;
             }
         }
     }
     return false;
 }