{"id":6194,"date":"2013-11-09T20:32:23","date_gmt":"2013-11-09T20:32:23","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=6194"},"modified":"2013-11-09T20:39:29","modified_gmt":"2013-11-09T20:39:29","slug":"como-ocultar-los-precios-los-usuarios-registrados-en-prestashop","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/","title":{"rendered":"Como ocultar los precios a los usuarios no registrados en Prestashop"},"content":{"rendered":"<p>Ocultar los precios a los usuarios no registrados en Prestashop se puede realizar de varias formas. La primera forma que se nos podr\u00eda venir a la cabeza es ir a la plantilla o theme que se est\u00e9 utilizando y all\u00ed donde se muestren los precios hacer un condicional observando si el cliente est\u00e1 logeado o no para mostrar o no los precios:<\/p>\n<pre>{if $logged}\r\n   ...\r\n{\/if}<\/pre>\n<p>Esta opci\u00f3n ya nos valdr\u00eda pero tienes que modificar varios archivos .tpl donde aparezca el precio. Creo que hay otra soluci\u00f3n m\u00e1s elegante pero har\u00eda falta modificar el coraz\u00f3n de Prestashop. En este caso, modificar\u00edamos o sobreescribir\u00edamos la clase FrontController.php a\u00f1adiendo el archivo correspondiente en: override\/classes\/controllers\/FrontController.php con el siguiente contenido:<\/p>\n<pre>&lt;?php\r\n\r\nclass FrontController extends FrontControllerCore\r\n{\r\n\r\n\u00a0\u00a0 \u00a0public function init()\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/*\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Globals are DEPRECATED as of version 1.5.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Use the Context to access objects instead.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Example: $this-&gt;context-&gt;cart\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0global $useSSL, $cookie, $smarty, $cart, $iso, $defaultCountry, $protocol_link, $protocol_content, $link, $css_files, $js_files, $currency;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (self::$initialized)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0self::$initialized = true;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0parent::init();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ If current URL use SSL, set it true (used a lot for module redirect)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (Tools::usingSecureMode())\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$useSSL = true;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ For compatibility with globals, DEPRECATED as of version 1.5\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$css_files = $this-&gt;css_files;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$js_files = $this-&gt;js_files;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (Configuration::get('PS_SSL_ENABLED') &amp;&amp; ($_SERVER['REQUEST_METHOD'] != 'POST') &amp;&amp; $this-&gt;ssl != Tools::usingSecureMode())\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0header('HTTP\/1.1 301 Moved Permanently');\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0header('Cache-Control: no-cache');\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;ssl)\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0else\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0header('Location: '.Tools::getShopDomain(true).$_SERVER['REQUEST_URI']);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0exit();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;ajax)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;display_header = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;display_footer = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ if account created with the 2 steps register process, remove 'accoun_created' from cookie\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (isset($this-&gt;context-&gt;cookie-&gt;account_created))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign('account_created', 1);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0unset($this-&gt;context-&gt;cookie-&gt;account_created);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ob_start();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Init cookie language\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ @TODO This method must be moved into switchLanguage\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Tools::setCookieLanguage($this-&gt;context-&gt;cookie);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$currency = Tools::setCurrency($this-&gt;context-&gt;cookie);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$protocol_link = (Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode()) ? 'https:\/\/' : 'http:\/\/';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$useSSL = ((isset($this-&gt;ssl) &amp;&amp; $this-&gt;ssl &amp;&amp; Configuration::get('PS_SSL_ENABLED')) || Tools::usingSecureMode()) ? true : false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$protocol_content = ($useSSL) ? 'https:\/\/' : 'http:\/\/';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$link = new Link($protocol_link, $protocol_content);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;link = $link;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($id_cart = (int)$this-&gt;recoverCart())\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;cookie-&gt;id_cart = (int)$id_cart;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;auth &amp;&amp; !$this-&gt;context-&gt;customer-&gt;isLogged($this-&gt;guestAllowed))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Tools::redirect('index.php?controller=authentication'.($this-&gt;authRedirection ? '&amp;back='.$this-&gt;authRedirection : ''));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* Theme is missing *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!is_dir(_PS_THEME_DIR_))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0die(sprintf(Tools::displayError('Current theme unavailable \"%s\". Please check your theme directory name and permissions.'), basename(rtrim(_PS_THEME_DIR_, '\/\\\\'))));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (Configuration::get('PS_GEOLOCATION_ENABLED'))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (($newDefault = $this-&gt;geolocationManagement($this-&gt;context-&gt;country)) &amp;&amp; Validate::isLoadedObject($newDefault))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;country = $newDefault;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (isset($_GET['logout']) || ($this-&gt;context-&gt;customer-&gt;logged &amp;&amp; Customer::isBanned($this-&gt;context-&gt;customer-&gt;id)))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;customer-&gt;logout();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elseif (isset($_GET['mylogout']))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;customer-&gt;mylogout();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* Cart already exists *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ((int)$this-&gt;context-&gt;cookie-&gt;id_cart)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart = new Cart($this-&gt;context-&gt;cookie-&gt;id_cart);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($cart-&gt;OrderExists())\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0unset($this-&gt;context-&gt;cookie-&gt;id_cart, $cart, $this-&gt;context-&gt;cookie-&gt;checkedTOS);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;cookie-&gt;check_cgv = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* Delete product of cart, if user can't make an order from his country *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elseif (intval(Configuration::get('PS_GEOLOCATION_ENABLED')) &amp;&amp;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0!in_array(strtoupper($this-&gt;context-&gt;cookie-&gt;iso_code_country), explode(';', Configuration::get('PS_ALLOWED_COUNTRIES'))) &amp;&amp;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;nbProducts() &amp;&amp; intval(Configuration::get('PS_GEOLOCATION_NA_BEHAVIOR')) != -1 &amp;&amp;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0!FrontController::isInWhitelistForGeolocation() &amp;&amp;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0!in_array($_SERVER['SERVER_NAME'], array('localhost', '127.0.0.1')))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0unset($this-&gt;context-&gt;cookie-&gt;id_cart, $cart);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ update cart values\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elseif ($this-&gt;context-&gt;cookie-&gt;id_customer != $cart-&gt;id_customer || $this-&gt;context-&gt;cookie-&gt;id_lang != $cart-&gt;id_lang || $currency-&gt;id != $cart-&gt;id_currency)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;context-&gt;cookie-&gt;id_customer)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_customer = (int)($this-&gt;context-&gt;cookie-&gt;id_customer);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_lang = (int)($this-&gt;context-&gt;cookie-&gt;id_lang);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_currency = (int)$currency-&gt;id;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;update();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* Select an address if not set *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (isset($cart) &amp;&amp; (!isset($cart-&gt;id_address_delivery) || $cart-&gt;id_address_delivery == 0 ||\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0!isset($cart-&gt;id_address_invoice) || $cart-&gt;id_address_invoice == 0) &amp;&amp; $this-&gt;context-&gt;cookie-&gt;id_customer)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$to_update = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!isset($cart-&gt;id_address_delivery) || $cart-&gt;id_address_delivery == 0)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$to_update = true;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_address_delivery = (int)Address::getFirstCustomerAddressId($cart-&gt;id_customer);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!isset($cart-&gt;id_address_invoice) || $cart-&gt;id_address_invoice == 0)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$to_update = true;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_address_invoice = (int)Address::getFirstCustomerAddressId($cart-&gt;id_customer);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($to_update)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;update();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!isset($cart) || !$cart-&gt;id)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart = new Cart();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_lang = (int)($this-&gt;context-&gt;cookie-&gt;id_lang);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_currency = (int)($this-&gt;context-&gt;cookie-&gt;id_currency);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_guest = (int)($this-&gt;context-&gt;cookie-&gt;id_guest);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_shop_group = (int)$this-&gt;context-&gt;shop-&gt;id_shop_group;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_shop = $this-&gt;context-&gt;shop-&gt;id;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;context-&gt;cookie-&gt;id_customer)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_customer = (int)($this-&gt;context-&gt;cookie-&gt;id_customer);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_address_delivery = (int)(Address::getFirstCustomerAddressId($cart-&gt;id_customer));\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_address_invoice = $cart-&gt;id_address_delivery;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0else\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_address_delivery = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$cart-&gt;id_address_invoice = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Needed if the merchant want to give a free product to every visitors\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;cart = $cart;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0CartRule::autoAddToCart($this-&gt;context);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* get page name to display it in body id *\/\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Are we in a payment module\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$module_name = '';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (Validate::isModuleName(Tools::getValue('module')))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$module_name = Tools::getValue('module');\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!empty($this-&gt;page_name))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$page_name = $this-&gt;page_name;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elseif (!empty($this-&gt;php_self))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$page_name = $this-&gt;php_self;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elseif (Tools::getValue('fc') == 'module' &amp;&amp; $module_name != '' &amp;&amp; (Module::getInstanceByName($module_name) instanceof PaymentModule))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$page_name = 'module-payment-submit';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ @retrocompatibility Are we in a module ?\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elseif (preg_match('#^'.preg_quote($this-&gt;context-&gt;shop-&gt;physical_uri, '#').'modules\/([a-zA-Z0-9_-]+?)\/(.*)$#', $_SERVER['REQUEST_URI'], $m))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$page_name = 'module-'.$m[1].'-'.str_replace(array('.php', '\/'), array('', '-'), $m[2]);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0else\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$page_name = Dispatcher::getInstance()-&gt;getController();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$page_name = (preg_match('\/^[0-9]\/', $page_name)) ? 'page_'.$page_name : $page_name;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign(Meta::getMetaTags($this-&gt;context-&gt;language-&gt;id, $page_name));\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign('request_uri', Tools::safeOutput(urldecode($_SERVER['REQUEST_URI'])));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* Breadcrumb *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$navigationPipe = (Configuration::get('PS_NAVIGATION_PIPE') ? Configuration::get('PS_NAVIGATION_PIPE') : '&gt;');\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign('navigationPipe', $navigationPipe);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Automatically redirect to the canonical URL if needed\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!empty($this-&gt;php_self) &amp;&amp; !Tools::getValue('ajax'))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;canonicalRedirection($this-&gt;context-&gt;link-&gt;getPageLink($this-&gt;php_self, $this-&gt;ssl, $this-&gt;context-&gt;language-&gt;id));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Product::initPricesComputation();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$display_tax_label = $this-&gt;context-&gt;country-&gt;display_tax_label;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (isset($cart-&gt;{Configuration::get('PS_TAX_ADDRESS_TYPE')}) &amp;&amp; $cart-&gt;{Configuration::get('PS_TAX_ADDRESS_TYPE')})\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$infos = Address::getCountryAndState((int)($cart-&gt;{Configuration::get('PS_TAX_ADDRESS_TYPE')}));\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$country = new Country((int)$infos['id_country']);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;country = $country;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (Validate::isLoadedObject($country))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$display_tax_label = $country-&gt;display_tax_label;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$languages = Language::getLanguages(true, $this-&gt;context-&gt;shop-&gt;id);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$meta_language = array();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0foreach ($languages as $lang)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$meta_language[] = $lang['iso_code'];\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<span style=\"color: #ff0000;\">\/* Mostrar precios solo a los clientes registrados *\/\u00a0\u00a0 \u00a0<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($cookie-&gt;logged)<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$mode_catalog = (bool)Configuration::get('PS_CATALOG_MODE') || !(bool)Group::getCurrent()-&gt;show_prices;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0else<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$mode_catalog = true;<\/span>\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign(array(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Usefull for layout.tpl\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'mobile_device' =&gt; $this-&gt;context-&gt;getMobileDevice(),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'link' =&gt; $link,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'cart' =&gt; $cart,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'currency' =&gt; $currency,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'cookie' =&gt; $this-&gt;context-&gt;cookie,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'page_name' =&gt; $page_name,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'hide_left_column' =&gt; !$this-&gt;display_column_left,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'hide_right_column' =&gt; !$this-&gt;display_column_right,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'base_dir' =&gt; _PS_BASE_URL_.__PS_BASE_URI__,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'base_dir_ssl' =&gt; $protocol_link.Tools::getShopDomainSsl().__PS_BASE_URI__,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'content_dir' =&gt; $protocol_content.Tools::getHttpHost().__PS_BASE_URI__,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'base_uri' =&gt; $protocol_content.Tools::getHttpHost().__PS_BASE_URI__.(!Configuration::get('PS_REWRITING_SETTINGS') ? 'index.php' : ''),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'tpl_dir' =&gt; _PS_THEME_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'modules_dir' =&gt; _MODULE_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'mail_dir' =&gt; _MAIL_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'lang_iso' =&gt; $this-&gt;context-&gt;language-&gt;iso_code,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'come_from' =&gt; Tools::getHttpHost(true, true).Tools::htmlentitiesUTF8(str_replace(array('\\'', '\\\\'), '', urldecode($_SERVER['REQUEST_URI']))),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'cart_qties' =&gt; (int)$cart-&gt;nbProducts(),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'currencies' =&gt; Currency::getCurrencies(),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'languages' =&gt; $languages,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'meta_language' =&gt; implode('-', $meta_language),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'priceDisplay' =&gt; Product::getTaxCalculationMethod(),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'add_prod_display' =&gt; (int)Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'shop_name' =&gt; Configuration::get('PS_SHOP_NAME'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'roundMode' =&gt; (int)Configuration::get('PS_PRICE_ROUND_MODE'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'use_taxes' =&gt; (int)Configuration::get('PS_TAX'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'show_taxes' =&gt; (int)(Configuration::get('PS_TAX_DISPLAY') == 1 &amp;&amp; (int)Configuration::get('PS_TAX')),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'display_tax_label' =&gt; (bool)$display_tax_label,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'vat_management' =&gt; (int)Configuration::get('VATNUMBER_MANAGEMENT'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'opc' =&gt; (bool)Configuration::get('PS_ORDER_PROCESS_TYPE'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<span style=\"color: #ff0000;\">'PS_CATALOG_MODE' =&gt; $mode_catalog,<\/span>\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'b2b_enable' =&gt; (bool)Configuration::get('PS_B2B_ENABLE'),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'request' =&gt; $link-&gt;getPaginationLink(false, false, false, true),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'PS_STOCK_MANAGEMENT' =&gt; Configuration::get('PS_STOCK_MANAGEMENT')\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Add the tpl files directory for mobile\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;context-&gt;getMobileDevice() != false)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign(array(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'tpl_mobile_uri' =&gt; _PS_THEME_MOBILE_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Deprecated\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign(array(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'id_currency_cookie' =&gt; (int)$currency-&gt;id,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'logged' =&gt; $this-&gt;context-&gt;customer-&gt;isLogged(),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'customerName' =&gt; ($this-&gt;context-&gt;customer-&gt;logged ? $this-&gt;context-&gt;cookie-&gt;customer_firstname.' '.$this-&gt;context-&gt;cookie-&gt;customer_lastname : false)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$assign_array = array(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_ps_dir' =&gt; _PS_IMG_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_cat_dir' =&gt; _THEME_CAT_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_lang_dir' =&gt; _THEME_LANG_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_prod_dir' =&gt; _THEME_PROD_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_manu_dir' =&gt; _THEME_MANU_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_sup_dir' =&gt; _THEME_SUP_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_ship_dir' =&gt; _THEME_SHIP_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_store_dir' =&gt; _THEME_STORE_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_col_dir' =&gt; _THEME_COL_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'img_dir' =&gt; _THEME_IMG_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'css_dir' =&gt; _THEME_CSS_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'js_dir' =&gt; _THEME_JS_DIR_,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'pic_dir' =&gt; _THEME_PROD_PIC_DIR_\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Add the images directory for mobile\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;context-&gt;getMobileDevice() != false)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$assign_array['img_mobile_dir'] = _THEME_MOBILE_IMG_DIR_;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Add the CSS directory for mobile\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;context-&gt;getMobileDevice() != false)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$assign_array['css_mobile_dir'] = _THEME_MOBILE_CSS_DIR_;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0foreach ($assign_array as $assign_key =&gt; $assign_value)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (substr($assign_value, 0, 1) == '\/' || $protocol_content == 'https:\/\/')\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign($assign_key, $protocol_content.Tools::getMediaServer($assign_value).$assign_value);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0else\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;smarty-&gt;assign($assign_key, $assign_value);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/*\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * These shortcuts are DEPRECATED as of version 1.5.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Use the Context to access objects instead.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Example: $this-&gt;context-&gt;cart\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0self::$cookie = $this-&gt;context-&gt;cookie;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0self::$cart = $cart;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0self::$smarty = $this-&gt;context-&gt;smarty;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0self::$link = $link;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$defaultCountry = $this-&gt;context-&gt;country;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;displayMaintenancePage();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($this-&gt;restrictedCountry)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;displayRestrictedCountryPage();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (Tools::isSubmit('live_edit') &amp;&amp; !$this-&gt;checkLiveEditAccess())\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Tools::redirect('index.php?controller=404');\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;iso = $iso;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;cart = $cart;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this-&gt;context-&gt;currency = $currency;\r\n\u00a0\u00a0 \u00a0}\r\n}<\/pre>\n<p>De la clase FrontController.php tan solo est\u00e1mos sobreescribiendo el m\u00e9todo o funci\u00f3n init() a\u00f1adiendo o modificando el c\u00f3digo marcado en rojo.<\/p>\n<p>Realizando esta sobreescritura, cuando el usuario sea un visitante deslogeado no ver\u00e1 los precios ya que estamos activando el modo cat\u00e1logo desde el c\u00f3digo. En caso contrario, si se trata de un cliente registrado y est\u00e1 logeado, se mostrar\u00e1n los precios de la forma habitual.<\/p>\n<p>Si te ha servido este tutorial, no dudes en hacerte fan de la p\u00e1gina de facebook del <a href=\"https:\/\/www.facebook.com\/joseaguilarblog\" target=\"_blank\">blog Jose Aguilar<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ocultar los precios a los usuarios no registrados en Prestashop se puede realizar de varias formas. La primera forma que se nos podr\u00eda venir a la cabeza es ir a la plantilla o theme que se est\u00e9 utilizando y all\u00ed donde se muestren los precios hacer un condicional observando si el cliente est\u00e1 logeado o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5817,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-6194","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prestashop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como ocultar los precios a los usuarios no registrados en Prestashop - Jose Aguilar Blog<\/title>\n<meta name=\"description\" content=\"Ocultar los precios a los usuarios no registrados modificando el coraz\u00f3n de Prestashop.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como ocultar los precios a los usuarios no registrados en Prestashop - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Ocultar los precios a los usuarios no registrados modificando el coraz\u00f3n de Prestashop.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2013-11-09T20:32:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-11-09T20:39:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/\",\"name\":\"Como ocultar los precios a los usuarios no registrados en Prestashop - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg\",\"datePublished\":\"2013-11-09T20:32:23+00:00\",\"dateModified\":\"2013-11-09T20:39:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"description\":\"Ocultar los precios a los usuarios no registrados modificando el coraz\u00f3n de Prestashop.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg\",\"width\":200,\"height\":200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como ocultar los precios a los usuarios no registrados en Prestashop\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como ocultar los precios a los usuarios no registrados en Prestashop - Jose Aguilar Blog","description":"Ocultar los precios a los usuarios no registrados modificando el coraz\u00f3n de Prestashop.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Como ocultar los precios a los usuarios no registrados en Prestashop - Jose Aguilar Blog","og_description":"Ocultar los precios a los usuarios no registrados modificando el coraz\u00f3n de Prestashop.","og_url":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2013-11-09T20:32:23+00:00","article_modified_time":"2013-11-09T20:39:29+00:00","og_image":[{"width":200,"height":200,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg","type":"image\/jpeg"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/","url":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/","name":"Como ocultar los precios a los usuarios no registrados en Prestashop - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg","datePublished":"2013-11-09T20:32:23+00:00","dateModified":"2013-11-09T20:39:29+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"description":"Ocultar los precios a los usuarios no registrados modificando el coraz\u00f3n de Prestashop.","breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/prestashop3-200x200.jpg","width":200,"height":200},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-ocultar-los-precios-los-usuarios-registrados-en-prestashop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Como ocultar los precios a los usuarios no registrados en Prestashop"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=6194"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6194\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/5817"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=6194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=6194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=6194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}