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'));
 }
Пример #4
0
<?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) {
Пример #5
0
 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');
 }
Пример #6
0
 /**
  * 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;
 }
Пример #7
0
    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');
    }
Пример #8
0
function infoFields()
{
    $c = new Customer();
    return $c->getFields();
}