Jump to content

[SOLUCIONADO] ¿Cómo obtener el id_customer del cliente logueado?


raul.chuky

Recommended Posts

Hola gente del foro,
Mi consulta es la siguiente, estoy queriendo obtener el id_customer del cliente logueado, les explico el porque.
Porque estoy validando el costo de envio para cada producto agregado al carrito, voy a ser mas claro.
Registrandose el cliente con un ciudad "X" el costo de envio tiene que ser 0, y para las demas ciudades diferentes de "X" aplicar el costo de envio definido para el producto agregado al carrito.

Para agregar el costo de envio por producto me guie en el siguiente tutorial Shipping cost per item

En la siguiente funcion introducida del tutorial

function getTotalShipping()
   {
       if (!$this->id)
           return 0;

       $products = $this->getProducts();
       $order_total = 0;
       $maximum = 0;
       foreach ($products AS $product)
       {
               $maximum += $product['shipping_peritem'];                 
           }

       return $maximum;
   } 



Le agregue las siguientes lineas

function getTotalShipping()
   {
       if (!$this->id)
           return 0;

           $products = $this->getProducts();
           $bd_ciudad = $this->getCity();
           $order_total = 0;
           $city = 'Asuncion';
           $maximum = 0;
           foreach ($products AS $product)
           {
                   if (strtolower(trim($bd_ciudad)) != strtolower(trim($city)))
                   {
                           //$order_total = $order_total + $product['shipping_peritem']; 
                           //('1.1' * intval($product['quantity']));

                       if ($product['shipping_peritem'] > $maximum) {
                           $maximun += $product['shipping_peritem'];
                       }
                    } else { 
                         $maximun += floatval(Tools::ps_round(floatval($shipping_cost), 2));
                   }

           }
                   return $maximun;
   }



Para obtener el valor de $bd_ciudad le agregue la siguiente funcion

public function getCity()
   {
   $sql = "SELECT `city` FROM `address` a JOIN `customer` c ON c.`id_customer` = a.`id_customer` WHERE a.`id_customer` = 'Aqui deberia ir el id_customer del cliente logueado' ";    

   $result = Db::getInstance()->getRow($sql);

   return $result['city'];    
   }



Introduciendo manualmente el id_customer en el query funciona todo mi codigo
Si alguien sabe como obtener el id_customer del cliente logueado por favor que me ayude

Link to comment
Share on other sites

Ya lo solucione, muchas gracias de todas formas
Posteo la solucion por si le sea util a alguien

En la funcion de getCity que habia añadido

public function getCity()
   {

   $sql = "SELECT `city` FROM `address` a JOIN `customer` c ON c.`id_customer` = a.`id_customer` WHERE a.`id_customer` = 'Aqui deberia ir el id_customer del cliente logueado' ";    

   $result = Db::getInstance()->getRow($sql);

       return $result['city'];    
   }



Le agregue y modifique al codigo

public function getCity()
   {

   $customer = $this->id_customer;
   $sql = "SELECT `city` FROM `address` a JOIN `customer` c ON c.`id_customer` = a.`id_customer` WHERE a.`id_customer` =  $customer ";    

   $result = Db::getInstance()->getRow($sql);

       return $result['city'];    
   }

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...