bebeboutik/modules/invite/invite-program.php
2018-02-27 10:44:27 +01:00

288 lines
12 KiB
PHP

<?php
$useSSL = TRUE;
require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');
$controller->preProcess();
if (!$cookie->isLogged())
Tools::redirect('authentication.php?back=modules/invite/invite-program.php');
include_once(dirname(__FILE__).'/invite.php');
Tools::addJS(_PS_JS_DIR_.'jquery/jquery.idTabs.modified.js');
include(dirname(__FILE__).'/../../header.php');
$invite = new Invite();
$activeTab = 'credit';
$error = FALSE;
$revive_sent = FALSE;
$mails_exists = array();
$orderQuantity = Configuration::get('INVITE_ORDER_QTY');
$canSendInvitations = FALSE;
$askName = (int) Configuration::get('INVITE_ASK_NAME');
$customer = new Customer((int) $cookie->id_customer);
$groups = $customer->getGroups();
$stats = $customer->getStats();
if((int) $stats['nb_orders'] >= $orderQuantity) {
$canSendInvitations = TRUE;
}
if(Configuration::get('INVITE_FORM_LINKFORMAT')) {
$invitelink = Tools::getShopDomain(TRUE).__PS_BASE_URI__.'invite/'.substr(base64_encode($customer->date_add), 0, 12).strrev(base64_encode(strval($cookie->email)));
} else {
if(Configuration::get('PS_CIPHER_ALGORITHM')) {
$cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_);
} else {
$cipherTool = new Blowfish(_COOKIE_KEY_, _COOKIE_IV_);
}
$invitelink = $link->getPageLink('authentication.php', TRUE).'?create_account=1&sponsor='.urlencode($cipherTool->encrypt('1|'.$cookie->email.'|'));
}
$reward_sponsor_on = (int) Configuration::get('INVITE_REWARD_SPONSOR_ON');
$reward_sponsored_on = (int) Configuration::get('INVITE_REWARD_SPONSORED_ON');
$reward_sponsor = (int) Configuration::get('INVITE_REWARD_SPONSOR_TYPE');
$reward_sponsored = (int) Configuration::get('INVITE_REWARD_SPONSORED_TYPE');
if($reward_sponsor == 4) {
$reward_sponsor_value = (int) Configuration::get('INVITE_REWARD_SPONSOR_VALUE_'.$groups[count($groups) - 1].'_'.$cookie->id_currency);
$reward_sponsor_credit_value = 0;
} elseif($reward_sponsor == 1) {
$reward_sponsor_value = (int) Configuration::get('INVITE_REWARD_SPONSOR_VALUE_'.$groups[count($groups) - 1]);
$reward_sponsor_credit_value = $reward_sponsor_value * (int) Configuration::get('INVITE_CREDIT_RATE');
} else {
$reward_sponsor_value = (int) Configuration::get('INVITE_REWARD_SPONSOR_VALUE_'.$groups[count($groups) - 1]);
$reward_sponsor_credit_value = 0;
}
if($reward_sponsored == 4) {
$reward_sponsored_value = (int) Configuration::get('INVITE_REWARD_SPONSORED_VALUE_'.$groups[count($groups) - 1].'_'.$cookie->id_currency);
$reward_sponsor_credit_value = 0;
} elseif($reward_sponsored == 1) {
$reward_sponsored_value = (int) Configuration::get('INVITE_REWARD_SPONSORED_VALUE_'.$groups[count($groups) - 1]);
$reward_sponsored_credit_value = $reward_sponsored_value * (int) Configuration::get('INVITE_CREDIT_RATE');
} else {
$reward_sponsored_value = (int) Configuration::get('INVITE_REWARD_SPONSORED_VALUE_'.$groups[count($groups) - 1]);
$reward_sponsor_credit_value = 0;
}
$nbInvitation = 0;
$nbRevive = 0;
$invitation_sent = FALSE;
$revive_sent = FALSE;
if($canSendInvitations) {
if (Tools::isSubmit('submitSponsorFriends')
&& Tools::getValue('friendsEmail')
&& sizeof($friendsEmail = Tools::getValue('friendsEmail')) >= 1) {
if (!Tools::getValue('conditionsValided')) {
$error = 'conditions not valided';
} else {
$friendsLastName = Tools::getValue('friendsLastName');
$friendsFirstName = Tools::getValue('friendsFirstName');
$mails_exists = array();
foreach ($friendsEmail AS $key => $friendEmail) {
$friendEmail = strval($friendEmail);
$friendEmail = trim($friendEmail);
/** @Override Antadis - mail fixing */
$friendEmail = str_replace(array('@hotmil.','@htmail.','@hotmal.','@hotml.','@hotmai.'),'@hotmail.',$friendEmail);
$friendEmail = str_replace(array('@gmal.','@gail.','@gml.','@gmai.','@gmil.'),'@gmail.',$friendEmail);
$friendEmail = str_replace('@gmailcom','@gmail.com',$friendEmail);
$friendEmail = str_replace('@hotmailcom','@hotmail.com',$friendEmail);
$friendEmail = str_replace('@hotmailfr','@hotmail.fr',$friendEmail);
/** @End Override Antadis - mail fixing */
if($askName) {
$friendLastName = strval($friendsLastName[$key]);
$friendFirstName = strval($friendsFirstName[$key]);
} else {
$friendLastName = '';
$friendFirstName = '';
}
if(empty($friendEmail) && empty($friendLastName) && empty($friendFirstName)) {
continue;
} elseif(empty($friendEmail) || !Validate::isEmail($friendEmail)) {
$error = 'email invalid';
} elseif($askName && (empty($friendFirstName) || empty($friendLastName) || !Validate::isName($friendLastName) || !Validate::isName($friendFirstName))) {
$error = 'name invalid';
} elseif($invite->emailExists($friendEmail) || Customer::customerExists($friendEmail)) {
$mails_exists[] = $friendEmail;
} else {
$when_invite = Tools::getValue('when_invite', 0);
$id_invite = $invite->addInvite($cookie->id_customer, $friendFirstName, $friendLastName, $friendEmail, $when_invite);
if(!$id_invite) {
$error = 'cannot add friends';
} else {
if(Configuration::get('INVITE_FORM_LINKFORMAT')) {
$_invitelink = Tools::getShopDomain(TRUE).__PS_BASE_URI__.'invite/'.substr(base64_encode($customer->date_add), 0, 12).strrev(base64_encode(strval($cookie->email))).'?email='.rawurlencode($friendEmail);
} else {
if(Configuration::get('PS_CIPHER_ALGORITHM')) {
$cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_);
} else {
$cipherTool = new Blowfish(_COOKIE_KEY_, _COOKIE_IV_);
}
$_invitelink = $link->getPageLink('authentication.php').'?create_account=1&sponsor='.urlencode($cipherTool->encrypt($id_invite.'|'.$cookie->email.'|'));
}
$vars = array(
'{email}' => strval($cookie->email),
'{lastname}' => strval($cookie->customer_lastname),
'{firstname}' => strval($cookie->customer_firstname),
'{email_friend}' => $friendEmail,
'{name_friend}' => ($askName? strval($friendFirstName).' '.strval($friendLastName).'... ': ''),
'{link}' => $_invitelink,
'{reward_sponsor}' => $reward_sponsor,
'{reward_sponsored}' => $reward_sponsored,
'{reward_sponsor_value}' => $reward_sponsor_value,
'{reward_sponsored_value}' => $reward_sponsored_value,
'{reward_sponsor_credit_value}' => $reward_sponsor_credit_value,
'{reward_sponsored_credit_value}' => $reward_sponsored_credit_value,
'{currency}' => $currency->sign,
);
Mail::Send(
(int) $cookie->id_lang,
($reward_sponsored == 1? 'invite-invitation-credit': ($reward_sponsored == 2? 'invite-invitation-loyalty': ($reward_sponsored == 3? 'invite-invitation-discount-percent': ($reward_sponsored == 4? 'invite-invitation-discount-amount': ($reward_sponsored == 5? 'invite-invitation-shipping': 'invite-invitation'))))),
Mail::l('Referral Program'),
$vars,
$friendEmail,
($askName? $friendFirstName.' '.$friendLastName: $friendEmail),
strval(Configuration::get('PS_SHOP_EMAIL')),
strval(Configuration::get('PS_SHOP_NAME')),
NULL,
NULL,
dirname(__FILE__).'/mails/'
);
$invitation_sent = TRUE;
$nbInvitation++;
}
}
if($error) {
break;
}
}
if($nbInvitation > 0) {
$activeTab = 'pending';
unset($_POST);
}
if(sizeof($mails_exists)) {
$error = 'email exists';
}
}
}
if (Tools::isSubmit('revive')) {
$activeTab = 'pending';
if (Tools::getValue('friendChecked') && sizeof($friendsChecked = Tools::getValue('friendChecked')) >= 1) {
foreach ($friendsChecked as $key => $friendChecked) {
if ($invite->isFriend((int) $cookie->id_customer, (int) $key)) {
$infos = $invite->getInvite((int) $key);
if(Configuration::get('INVITE_FORM_LINKFORMAT')) {
$_invitelink = Tools::getShopDomain(TRUE).__PS_BASE_URI__.'invite/'.substr(base64_encode($customer->date_add), 0, 12).strrev(base64_encode(strval($cookie->email))).'?email='.rawurlencode($infos['email']);
} else {
if (Configuration::get('PS_CIPHER_ALGORITHM')) {
$cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_);
} else {
$cipherTool = new Blowfish(_COOKIE_KEY_, _COOKIE_IV_);
}
$_invitelink = $link->getPageLink('authentication.php').'?create_account=1&sponsor='.urlencode($cipherTool->encrypt($infos['id_invite'].'|'.$cookie->email.'|'));
}
$vars = array(
'{email}' => $cookie->email,
'{lastname}' => $cookie->customer_lastname,
'{firstname}' => $cookie->customer_firstname,
'{email_friend}' => $infos['email'],
'{name_friend}' => ($askName? strval($infos['firstname']).' '.strval($infos['lastname']).'... ': ''),
'{link}' => $_invitelink,
'{reward_sponsor}' => $reward_sponsor,
'{reward_sponsored}' => $reward_sponsored,
'{reward_sponsor_value}' => $reward_sponsor_value,
'{reward_sponsored_value}' => $reward_sponsored_value,
'{reward_sponsor_credit_value}' => $reward_sponsor_credit_value,
'{reward_sponsored_credit_value}' => $reward_sponsored_credit_value,
'{currency}' => $currency->sign,
);
Mail::Send(
(int) $cookie->id_lang,
($reward_sponsored == 1? 'invite-invitation-credit': ($reward_sponsored == 2? 'invite-invitation-loyalty': ($reward_sponsored == 3? 'invite-invitation-discount-percent': ($reward_sponsored == 4? 'invite-invitation-discount-amount': ($reward_sponsored == 5? 'invite-invitation-shipping': 'invite-invitation'))))),
Mail::l('Referral Program'),
$vars,
$infos['email'],
($askName? $infos['firstname'].' '.$infos['lastname']: $infos['email']),
strval(Configuration::get('PS_SHOP_EMAIL')),
strval(Configuration::get('PS_SHOP_NAME')),
NULL,
NULL,
dirname(__FILE__).'/mails/'
);
$invite->updateInvite((int) $friendChecked);
$revive_sent = TRUE;
$nbRevive++;
}
}
} else {
$error = 'no revive checked';
}
}
}
$oi_services = FALSE;
if ($oi_enable = Configuration::get('INVITE_OPENINVITER_ENABLE')) {
include('openinviter/openinviter.php');
$inviter = new OpenInviter();
$oi_services = $inviter->getPlugins();
}
$display_credits = false;
$sql = 'SELECT id_customer FROM `'._DB_PREFIX_.'customer_credits` WHERE id_customer = ' . (int)$customer->id;
if (Db::getInstance()->getValue($sql) === false){
$display_credits = true;
}
$customer_credit = 0;
if ($display_credits === false) {
$customer_credit = $invite->_get_credit((int) $cookie->id_customer, false, false, 'frontoffice');
}
$smarty->assign(array(
'activeTab' => $activeTab,
'orderQuantity' => $orderQuantity,
'canSendInvitations' => $canSendInvitations,
'nbFriends' => (int) Configuration::get('INVITE_FORM_FIELDS'),
'showInviteLink' => (int) Configuration::get('INVITE_FORM_SHOWLINK'),
'askName' => $askName,
'invitelink' => $invitelink,
'reward_sponsor_on' => $reward_sponsor_on,
'reward_sponsored_on' => $reward_sponsored_on,
'reward_sponsor' => $reward_sponsor,
'reward_sponsored' => $reward_sponsored,
'reward_sponsor_value' => $reward_sponsor_value,
'reward_sponsored_value' => $reward_sponsored_value,
'error' => $error,
'mails_exists' => $mails_exists,
'revive_sent' => $revive_sent,
'invitation_sent' => $invitation_sent,
'nbInvitation' => $nbInvitation,
'nbRevive' => $nbRevive,
'oi_services' => $oi_services,
'oi_enable' => $oi_enable,
'pendingFriends' => $invite->getPendingFriends($customer->id),
'subscribeFriends' => $invite->getFriends($customer->id),
'currency' => $currency->sign,
'customer_credit' => $customer_credit,
'credits_display' => $display_credits,
));
echo Module::display(dirname(__FILE__).'/invite.php', 'invite-program.tpl');
include(dirname(__FILE__).'/../../footer.php');