Jump to content

Controllo sessione utente loggato o no per visualizzazione messaggio personalizzato + info QUERY personalizzate


MaPPaZZo

Recommended Posts

Ciao a tutti, ho modificato il tpl della lista prodotti e quello della pagina prodotto per far visualizzare un testo personalizzato vicino al prezzo.

In pratica devo avvisare l'utente registrato che il prezzo visualizzato è quello comprensivo dello sconto riservato al suo gruppo (sconto applicato al gruppo di appartenenza gestito da backoffice), e, nel caso non lo sia, visualizzare un altro messaggio linkato alla pagina del login/registrazione.

Fin qui tutto ok, ma mi serve sapere la condizione da mettere dentro l'if per effettuare la visualizzazione dell'uno o dell'altro messaggio. credo sicuramente sia una verifica della variabile di sessione legata all'id utente o similare...

in alternativa se mi indicate il file che gestisce le info utente (quello dell'header ad esempio) le informazioni che mi servono le ricavo direttamente da li e poi le posto se servono a qualcuno...!!! :-)

Grazieeeeeeee ;-)

Link to comment
Share on other sites

Allora

1) se il cliente è loggato o meno:

$cookie->isLogged()


Però se devi vedere a che gruppo è collegato devi farti una query per saperlo:

questa qry ti permette di sapere quali sono i gruppi del determinato utente loggato (array $result):

SELECT *
FROM `'._DB_PREFIX_.'customer_group`
WHERE `id_customer` ='.intval($cookie->id_customer);

$result = Db::getInstance()->executeS($query);


Ovviamente nel tuo caso poi verificherai che sia dentro al gruppo (es 2):
SELECT *
FROM `'._DB_PREFIX_.'customer_group`
WHERE `id_customer` ='.intval($cookie->id_customer)
AND `id_group`=2;
$result = Db::getInstance()->getRow($query);
Link to comment
Share on other sites

  • 3 weeks later...

Grazie mille!!! evidentemente non ho visto la notifica della risposta e l'ho vista solo adesso effettuando una ricerca sul forum in cerca di una soluzione!!! :-)

ho fatto cosi e funziona tutto egregiamente: (modificati i file product-list.tpl e product.tpl del mio template)


{if !$cookie->isLogged()}
Accedi o registrati per visualizzare il prezzo che ti abbiamo riservato!
{/if}
{if $cookie->isLogged()}
Questo è il prezzo che ti abbiamo riservato!
{/if}



Visto che però smarty non l' ho usato mai mi viene una domanda...ma le query dentro il tpl le posso mettere?!?! e come?

Grazie ancora! ;-)

Link to comment
Share on other sites

Allora, se ho ben capito il discorso, provo a spiegarmi con un esempio banale.

La funzione convertPrice che si vede spesso nei prodotti è un metodo scritto (forse) in Product.php (cartella classes).
Se non sbaglio prende come argomento il prezzo del prodotto che si vuole convertire.

Per farla "conoscere" a smarty, ce una linea di codice in init.php (root del negozio)

$smarty->register_function('convertPrice', array('Product', 'convertPrice'));


Per poi venire usata dentro il file tpl

{convertPrice price=$product.price_tax_exc}



Se ti serve una cosa del genere, basterebbe che tu scrivessi un metodo (che puo tranquillamente far uso di db query) nella classe giusta.
Includere a init.php una riga simile a quella sopra
Chiamarla nel TPL con la sintassi corretta.

Link to comment
Share on other sites

complimenti xhaxhi_eli

un ottimo metodo per utilizzare le funzioni in smarty!

PS tutte le funzioni di conversioni sono in Tools.php (classes) ;-)

   /**
   * Return price converted
   *
   * @param float $price Product price
   * @param object $currency Current currency object
   */
   static public function convertPrice($price, $currency)
   {
       $c_id = (is_array($currency) ? $currency['id_currency'] : $currency->id);
       $c_rate = (is_array($currency) ? $currency['conversion_rate'] : $currency->conversion_rate);
       if ($c_id != intval(Configuration::get('PS_CURRENCY_DEFAULT')))
           $price *= $c_rate;
       return $price;
   }

Link to comment
Share on other sites

sono tutte informazioni preziose per uno che come me si è avvicinato da pochissimo a prestashop!! :-)

potrebbero essere la base di partenza per gestire meglio le scontistiche.

Per esempio un'altra cosa che ho riscontrato è che se metto un prodotto in saldo, un utente appartenente a un gruppo con relativo sconto se lo vede ri-scontato e non va poi cosi bene..!

sapete per caso se qualcuno sta lavorando a questa casistica?!??!

Grazie mille ancora! ;-)

Link to comment
Share on other sites

La scontistica è gestita male.
Lo stesso problema accade anche con la scontistica sulla quantita.

Io ci mettero mano, ma per ora ho un po di altre cose da fare, e non posso dedicarmi a questo.

Il problema sta nei calcoli fatti su getStaticPrice.
Prima viene calcolato lo sconto prodotto, poi quello gruppo e alla fine quello sulla quantità.

Link to comment
Share on other sites

scusate, volevo fare un po di prove in locale per cercare di capire un po meglio come funziona.

volendo inserire nel tpl delle query per ricavare info riguardo l'utente, il gruppo, ecc.

dovrei fare cosi? correggetemi se sbaglio:


{PHP}

// DICHIARAZIONE QUERY
$query= "SELECT 'reduction' FROM `’.DB_PREFIX.‘prestashop_group` WHERE `id_group` =’.intval($cookie->id_group)"; 
//GIUSTA QUESTA SOPRA AD ESEMPIO?

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

$this->assign('sconto_personalizzato','result');

{/PHP} 

Il tuo sconto personalizzato: {$sconto_personalizzato}%



dichiarata cosi andrebbe bene in linea di massima? poi altro dubbio: che variabili posso ricavare dal cookie oltre a id_customer ?

Grazie! ;-)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...