public function preProcess() { parent::preProcess(); $customer = new Customer((int) self::$cookie->id_customer); if (sizeof($_POST)) { $exclusion = array('secure_key', 'old_passwd', 'passwd', 'active', 'date_add', 'date_upd', 'last_passwd_gen', 'newsletter_date_add', 'id_default_group'); $fields = $customer->getFields(); foreach ($fields as $key => $value) { if (!in_array($key, $exclusion)) { $customer->{$key} = key_exists($key, $_POST) ? trim($_POST[$key]) : 0; } } } if (isset($_POST['years']) and isset($_POST['months']) and isset($_POST['days'])) { $customer->birthday = (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days']; } if (Tools::isSubmit('submitIdentity')) { if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) and !(Tools::getValue('months') == '' and Tools::getValue('days') == '' and Tools::getValue('years') == '')) { $this->errors[] = Tools::displayError('Invalid date of birth'); } else { $customer->birthday = empty($_POST['years']) ? '' : (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days']; $_POST['old_passwd'] = trim($_POST['old_passwd']); if (empty($_POST['old_passwd']) or Tools::encrypt($_POST['old_passwd']) != self::$cookie->passwd) { $this->errors[] = Tools::displayError('Your password is incorrect.'); } elseif ($_POST['passwd'] != $_POST['confirmation']) { $this->errors[] = Tools::displayError('Password and confirmation do not match'); } else { $prev_id_default_group = $customer->id_default_group; $this->errors = $customer->validateControler(); } if (!sizeof($this->errors)) { $customer->id_default_group = (int) $prev_id_default_group; $customer->firstname = Tools::ucfirst(Tools::strtolower($customer->firstname)); if (Tools::getValue('passwd')) { self::$cookie->passwd = $customer->passwd; } if ($customer->update()) { self::$cookie->customer_lastname = $customer->lastname; self::$cookie->customer_firstname = $customer->firstname; self::$smarty->assign('confirmation', 1); } else { $this->errors[] = Tools::displayError('Cannot update information'); } } } } else { $_POST = array_map('stripslashes', $customer->getFields()); } if ($customer->birthday) { $birthday = explode('-', $customer->birthday); } else { $birthday = array('-', '-', '-'); } /* Generate years, months and days */ self::$smarty->assign(array('years' => Tools::dateYears(), 'sl_year' => $birthday[0], 'months' => Tools::dateMonths(), 'sl_month' => $birthday[1], 'days' => Tools::dateDays(), 'sl_day' => $birthday[2], 'errors' => $this->errors)); self::$smarty->assign('newsletter', (int) Module::getInstanceByName('blocknewsletter')->active); }
public function preProcess() { parent::preProcess(); $customer = new Customer((int) self::$cookie->id_customer); if (isset($_POST['years']) && isset($_POST['months']) && isset($_POST['days'])) { $customer->birthday = (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days']; } if (Tools::isSubmit('submitIdentity')) { if (Module::getInstanceByName('blocknewsletter')->active) { if (!isset($_POST['optin'])) { $customer->optin = 0; } if (!isset($_POST['newsletter'])) { $customer->newsletter = 0; } } if (!isset($_POST['id_gender'])) { $_POST['id_gender'] = 9; } if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) && !(Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == '')) { $this->errors[] = Tools::displayError('Invalid date of birth'); } else { $customer->birthday = empty($_POST['years']) ? '' : (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days']; $id_customer_exists = (int) Customer::customerExists(Tools::getValue('email'), true, false); if ($id_customer_exists && $id_customer_exists != (int) self::$cookie->id_customer) { $this->errors[] = Tools::displayError('An account is already registered with this e-mail.'); } $_POST['old_passwd'] = trim($_POST['old_passwd']); if (empty($_POST['old_passwd']) || Tools::encrypt($_POST['old_passwd']) != self::$cookie->passwd) { $this->errors[] = Tools::displayError('Your password is incorrect.'); } elseif ($_POST['passwd'] != $_POST['confirmation']) { $this->errors[] = Tools::displayError('Password and confirmation do not match'); } else { $prev_id_default_group = $customer->id_default_group; $this->errors = array_unique(array_merge($this->errors, $customer->validateController(true, true))); } if (!count($this->errors)) { $customer->id_default_group = (int) $prev_id_default_group; $customer->firstname = Tools::ucfirst(Tools::strtolower($customer->firstname)); if (Tools::getValue('passwd')) { self::$cookie->passwd = $customer->passwd; } if ($customer->update()) { self::$cookie->customer_lastname = $customer->lastname; self::$cookie->customer_firstname = $customer->firstname; self::$smarty->assign('confirmation', 1); } else { $this->errors[] = Tools::displayError('Cannot update information'); } } } } else { $_POST = array_map('stripslashes', $customer->getFields()); } $birthday = $customer->birthday ? explode('-', $customer->birthday) : array('-', '-', '-'); /* Generate years, months and days */ self::$smarty->assign(array('years' => Tools::dateYears(), 'sl_year' => $birthday[0], 'months' => Tools::dateMonths(), 'sl_month' => $birthday[1], 'days' => Tools::dateDays(), 'sl_day' => $birthday[2], 'errors' => $this->errors)); self::$smarty->assign('newsletter', (int) Module::getInstanceByName('blocknewsletter')->active); }
public function hookcreateAccount($req) { global $cookie; $id_lang = $cookie->id_lang; $cookie->logout(); $cookie->id_lang = $id_lang; $cookie->write(); $activation_link = md5(uniqid(rand(), true)); $link = $this->context->link->getModuleLink($this->name, 'activation') . '&link=' . $activation_link; $sql = sprintf("update %scustomer set active=0, activation_link='%s' where id_customer=%d", _DB_PREFIX_, $activation_link, $req['newCustomer']->id); Db::getInstance()->Execute($sql); $customer = new Customer($req['newCustomer']->id); $customer->getFields(); Mail::Send($id_lang, 'account_activation', $this->l('Account activation'), array('{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{link}' => $link), $customer->email, NULL, NULL, NULL, NULL, NULL, 'modules/activationbymail/mails/'); Tools::redirect($this->context->link->getModuleLink($this->name, 'info')); }
<?php /* SSL Management */ $useSSL = true; include dirname(__FILE__) . '/config/config.inc.php'; include dirname(__FILE__) . '/init.php'; if (!$cookie->isLogged()) { Tools::redirect('authentication.php?back=identity.php'); } $customer = new Customer(intval($cookie->id_customer)); $need_identification_number = $customer->getNeedDNI(); if (sizeof($_POST)) { $exclusion = array('secure_key', 'old_passwd', 'passwd', 'active', 'date_add', 'date_upd', 'last_passwd_gen', 'newsletter_date_add', 'id_default_group'); $fields = $customer->getFields(); foreach ($fields as $key => $value) { if (!in_array($key, $exclusion)) { $customer->{$key} = key_exists($key, $_POST) ? trim($_POST[$key]) : 0; } } } if (isset($_POST['years']) and isset($_POST['months']) and isset($_POST['days'])) { $customer->birthday = intval($_POST['years']) . '-' . intval($_POST['months']) . '-' . intval($_POST['days']); } $errors = array(); if (Tools::isSubmit('submitIdentity')) { if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) and !(Tools::getValue('months') == '' and Tools::getValue('days') == '' and Tools::getValue('years') == '')) { $errors[] = Tools::displayError('invalid birthday'); } else { $customer->birthday = empty($_POST['years']) ? '' : intval($_POST['years']) . '-' . intval($_POST['months']) . '-' . intval($_POST['days']); $_POST['old_passwd'] = trim($_POST['old_passwd']); if (empty($_POST['old_passwd']) or Tools::encrypt($_POST['old_passwd']) != $cookie->passwd) {
public function hookPaymentReturn($params) { global $cookie, $smarty; include dirname(__FILE__) . '/includes/Shop.php'; // dados do cliente $customer = new Customer(intval($cookie->id_customer)); $ArrayCliente = $customer->getFields(); // dados do pedido $DadosOrder = new Order($params['objOrder']->id); $ArrayListaProdutos = $DadosOrder->getProducts(); // gera descri�?o foreach ($ArrayListaProdutos as $info) { $item = array($zb[] = $info['product_name'] . ' * ' . $info['product_quantity']); } $descricao = implode(" + ", $zb); $currency = new Currency($DadosOrder->id_currency); $dados = array("external_reference" => $params['objOrder']->id, "currency" => $currency->iso_code, "title" => $descricao, "description" => $descricao, 'quantity' => 1, 'image' => '', 'amount' => $params['total_to_pay'], 'payment_firstname' => $ArrayCliente['firstname'], 'payment_lastname' => $ArrayCliente['lastname'], 'email' => $ArrayCliente['email'], 'pending' => Configuration::get('mercadopago_URLPROCESS'), 'approved' => Configuration::get('mercadopago_URLSUCCESFULL')); $client = Configuration::get('mercadopago_CLIENT_ID'); $secret = Configuration::get('mercadopago_CLIENT_SECRET'); $exclude = Configuration::get('mercadopago_METHODS'); $pagamento = new MPShop($client, $secret); $botton = $pagamento->GetCheckout($dados, $exclude); $country = Configuration::get('mercadopago_COUNTRY'); switch ($country) { case 'MLA': $banner = 'modules/mercadopago/imagens/mercadopagoar.jpg'; break; case 'MLB': $banner = 'modules/mercadopago/imagens/mercadopagobr.jpg'; break; case 'MLM': $banner = 'modules/mercadopago/imagens/mercadopagomx.jpg'; break; case 'MLV': $banner = 'modules/mercadopago/imagens/mercadopagov.jpg'; break; default: $banner = 'modules/mercadopago/imagens/mercadopagobr.jpg'; } $smarty->assign(array('totalApagar' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false, false), 'status' => 'ok', 'seller_op_id' => $params['objOrder']->id, 'secure_key' => $params['objOrder']->secure_key, 'id_module' => $this->id, 'formmercadopago' => $botton, 'imgBnr' => $banner)); return $this->display(__FILE__, 'payment_return.tpl'); }
/** * Start forms process * @see FrontController::postProcess() */ public function postProcess() { $origin_newsletter = (bool) $this->customer->newsletter; if (Tools::isSubmit('submitIdentity')) { $email = trim(Tools::getValue('email')); if (Tools::getValue('months') != '' && Tools::getValue('days') != '' && Tools::getValue('years') != '') { $this->customer->birthday = (int) Tools::getValue('years') . '-' . (int) Tools::getValue('months') . '-' . (int) Tools::getValue('days'); } elseif (Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == '') { $this->customer->birthday = null; } else { $this->errors[] = Tools::displayError('Invalid date of birth.'); } if (Tools::getIsset('old_passwd')) { $old_passwd = trim(Tools::getValue('old_passwd')); } if (!Validate::isEmail($email)) { $this->errors[] = Tools::displayError('This email address is not valid'); } elseif ($this->customer->email != $email && Customer::customerExists($email, true)) { $this->errors[] = Tools::displayError('An account using this email address has already been registered.'); } elseif (!Tools::getIsset('old_passwd') || Tools::encrypt($old_passwd) != $this->context->cookie->passwd) { $this->errors[] = Tools::displayError('The password you entered is incorrect.'); } elseif (Tools::getValue('passwd') != Tools::getValue('confirmation')) { $this->errors[] = Tools::displayError('The password and confirmation do not match.'); } else { $prev_id_default_group = $this->customer->id_default_group; // Merge all errors of this file and of the Object Model $this->errors = array_merge($this->errors, $this->customer->validateController()); } if (!count($this->errors)) { $this->customer->id_default_group = (int) $prev_id_default_group; $this->customer->firstname = Tools::ucwords($this->customer->firstname); if (Configuration::get('PS_B2B_ENABLE')) { $this->customer->website = Tools::getValue('website'); // force update of website, even if box is empty, this allows user to remove the website $this->customer->company = Tools::getValue('company'); } if (!Tools::getIsset('newsletter')) { $this->customer->newsletter = 0; } elseif (!$origin_newsletter && Tools::getIsset('newsletter')) { if ($module_newsletter = Module::getInstanceByName('blocknewsletter')) { /** @var Blocknewsletter $module_newsletter */ if ($module_newsletter->active) { $module_newsletter->confirmSubscription($this->customer->email); } } } if (!Tools::getIsset('optin')) { $this->customer->optin = 0; } if (Tools::getValue('passwd')) { $this->context->cookie->passwd = $this->customer->passwd; } if ($this->customer->update()) { $this->context->cookie->customer_lastname = $this->customer->lastname; $this->context->cookie->customer_firstname = $this->customer->firstname; $this->context->smarty->assign('confirmation', 1); } else { $this->errors[] = Tools::displayError('The information cannot be updated.'); } } } else { $_POST = array_map('stripslashes', $this->customer->getFields()); } return $this->customer; }
public function hookPaymentReturn($params) { global $cookie, $smarty; // dados do cliente $customer = new Customer(intval($cookie->id_customer)); $ArrayCliente = $customer->getFields(); // dados do pedido $DadosOrder = new Order($params['objOrder']->id); $ArrayListaProdutos = $DadosOrder->getProducts(); //Get shipment $address_delivery = new Address(intval($params['cart']->id_address_delivery)); $shipments = array("receiver_address" => array("floor" => "-", "zip_code" => $address_delivery->postcode, "street_name" => $address_delivery->address1 . " - " . $address_delivery->address2 . " - " . $address_delivery->city . "/" . $address_delivery->country, "apartment" => "-", "street_number" => "-")); //Force format YYYY-DD-MMTH:i:s $date_creation_user = date('Y-m-d', strtotime($ArrayCliente['date_add'])) . "T" . date('H:i:s', strtotime($ArrayCliente['date_add'])); $address_invoice = new Address(intval($params['cart']->id_address_invoice)); $phone = $address_invoice->phone; $phone .= $phone == "" ? "" : "|"; $phone .= $address_invoice->phone_mobile; $payer = array("name" => $ArrayCliente['firstname'], "surname" => $ArrayCliente['lastname'], "email" => $ArrayCliente['email'], "date_created" => $date_creation_user, "phone" => array("area_code" => "-", "number" => $phone), "address" => array("zip_code" => $address_invoice->postcode, "street_name" => $address_invoice->address1 . " - " . $address_delivery->address2 . " - " . $address_delivery->city . "/" . $address_delivery->country, "street_number" => "-"), "identification" => array("number" => "null", "type" => "null")); //items $image_url = ""; // gera descrição foreach ($ArrayListaProdutos as $info) { $item = array($zb[] = $info['product_name'] . ' * ' . $info['product_quantity']); //get object image on product object $id_image = $info['image']; // get Image by id if (sizeof($id_image) > 0) { $image = new Image($id_image->id_image); // get image full URL $image_url = _PS_BASE_URL_ . _THEME_PROD_DIR_ . $image->getExistingImgPath() . "." . $image->image_format; } } $descricao = implode(" + ", $zb); $item_price = number_format($params['total_to_pay'], 2, '.', ''); $currency = new Currency($DadosOrder->id_currency); $items = array(array("id" => $params['objOrder']->id, "title" => utf8_encode($descricao), "description" => utf8_encode($descricao), "quantity" => 1, "unit_price" => round($item_price, 2), "currency_id" => $currency->iso_code, "picture_url" => $image_url, "category_id" => Configuration::get('mercadopago_CATEGORY'))); //excludes_payment_methods $exclude = Configuration::get('mercadopago_METHODS'); $installments = Configuration::get('mercadopago_INSTALLMENTS'); $installments = str_replace("inst-", "", $installments); $installments = (int) $installments; if ($exclude != '') { //case exist exclude methods $methods_excludes = preg_split("/[\\s,]+/", $exclude); $excludemethods = array(); foreach ($methods_excludes as $exclude) { if ($exclude != "") { $excludemethods[] = array('id' => $exclude); } } $payment_methods = array("installments" => $installments, "excluded_payment_methods" => $excludemethods); } else { //case not exist exclude methods $payment_methods = array("installments" => $installments); } //set back url $back_urls = array("pending" => Configuration::get('mercadopago_URLPROCESS'), "success" => Configuration::get('mercadopago_URLSUCCESFULL')); //mount array pref $pref = array(); $pref['external_reference'] = $params['objOrder']->id; $pref['payer'] = $payer; $pref['shipments'] = $shipments; $pref['items'] = $items; $pref['back_urls'] = $back_urls; $pref['payment_methods'] = $payment_methods; $client_id = Configuration::get('mercadopago_CLIENT_ID'); $client_secret = Configuration::get('mercadopago_CLIENT_SECRET'); $mp = new MP($client_id, $client_secret); $preferenceResult = $mp->create_preference($pref); $sandbox = Configuration::get('mercadopago_SANDBOX') == "active" ? true : false; $url = ""; if ($sandbox) { $url = $preferenceResult['response']['sandbox_init_point']; } else { $url = $preferenceResult['response']['init_point']; } switch (Configuration::get('mercadopago_TYPECHECKOUT')) { case "Iframe": $botton = ' <iframe src="' . $url . '" name="MP-Checkout" width="740" height="600" frameborder="0"></iframe> <script type="text/javascript"> (function(){function $MPBR_load(){window.$MPBR_loaded !== true && (function(){var s = document.createElement("script");s.type = "text/javascript";s.async = true; s.src = ("https:"==document.location.protocol?"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/":"http://mp-tools.mlstatic.com/buttons/")+"render.js"; var x = document.getElementsByTagName("script")[0];x.parentNode.insertBefore(s, x);window.$MPBR_loaded = true;})();} window.$MPBR_loaded !== true ? (window.attachEvent ? window.attachEvent("onload", $MPBR_load) : window.addEventListener("load", $MPBR_load, false)) : null;})(); </script> '; break; case "Redirect": header("location: " . $url); break; case "Lightbox": default: $botton = ' <a href="' . $url . '" name="MP-Checkout" class="blue-L-Rn" mp-mode="modal" onreturn="execute_my_onreturn">Pagar</a> <script type="text/javascript"> (function(){function $MPBR_load(){window.$MPBR_loaded !== true && (function(){var s = document.createElement("script");s.type = "text/javascript";s.async = true; s.src = ("https:"==document.location.protocol?"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/":"http://mp-tools.mlstatic.com/buttons/")+"render.js"; var x = document.getElementsByTagName("script")[0];x.parentNode.insertBefore(s, x);window.$MPBR_loaded = true;})();} window.$MPBR_loaded !== true ? (window.attachEvent ? window.attachEvent("onload", $MPBR_load) : window.addEventListener("load", $MPBR_load, false)) : null;})(); </script> '; break; } $smarty->assign(array('totalApagar' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 'status' => 'ok', 'seller_op_id' => $params['objOrder']->id, 'secure_key' => $params['objOrder']->secure_key, 'id_module' => $this->id, 'formmercadopago' => $botton, 'imgBanner' => $this->getBanner())); return $this->display(__FILE__, 'payment_return.tpl'); }
function infoFields() { $c = new Customer(); return $c->getFields(); }