martes, 9 de diciembre de 2014

Páginas visibles en Magento segun el grupo de usuarios

Una petición que muy común entre los clientes que solicitan una web en Magento es que ciertas páginas solo estén visibles para los usuarios registrados o incluso solo para ciertos grupos de usuarios.

Yo me he encontrado con este problema y estuve buscando como solucionarlo por toda la red, encontrando soluciones de pago, bastante caras por cierto, hasta que finalmente logré dar con la piedra filosofal, que no es más que unos pequeños scripts, claro que hay que hacer algo de código.

Lo primero que debemos de hacer es crear nuestro archivo .phtml, en el cual introduciremos el código que necesitamos para que podamos poner nuestras condiciones...

Página solo visible a usuarios registrados

Comenzaremos por una página que solo puede ser vista por usuarios registrados; para ello en nuestro archivo .phtml debemos de poner el siguiente código base:
<?php if(Mage::getSingleton('customer/session')->isLoggedIn()): ?>
<!-- Aquí se mostrará el código html si el cliente está logueado -->
<?php else: ?>
<!-- Aquí se mostrará el código html  si no se está logueado -->
<?php endif; ?>

Tan solo nos queda introducir el código en cada una de las dos opciones y ya esta.

Página solo visible para ciertos grupos de usuarios

Puede ocurrir que queramos que una página sea visible solo para un grupo de usuarios (si es para varios grupos, el desarrollador con un poco de conocimiento en PHP verá que tan solo hace falta modificar la condición del if y poner nuevas variables).

Lo primero que debemos de hacer es irnos a nuestro panel de control de Magento y en Clientes >> Grupos de clientes, apuntamos la id del grupo que queremos.

A continuación lo único que debemos de hacer es irnos a nuestro archivo .phtml y poner el siguiente código:
<?php $idgrupo = 4; //reemplazar por la id del grupo que queramos
if(Mage::getSingleton('customer/session')->getCustomerGroupId() == $idgrupo): ?>
<!-- Código htlml que se mostrará si el cliente pertenece al grupo -->
<?php else: ?>
<!-- Código que se mostrará en caso de que no pertenezca al grupo -->
<?php endif; ?>

De esta forma ya tenemos una página que se mostrará solo si los miembros pertenecen a un grupo determinado.

No hay comentarios:

Publicar un comentario