[Résolu] Comment vider automatiquement le panier Cart2 ? -
adrienj - 16/02/2017
Bonjour,
Comment vider le panier Cart2 de la suite commerce de CMSMS sans que l'internaute ne clique sur un bouton "Vider le panier" ?
J'ai trouvé une
réponse qui date de 2010 sur le forum de cmsmadesimple.org avec le tag {session_erase var='cgcart'}, mais ça ne marche pas.
Sinon, je vois qu'il y a une fonction prévue pour ça dans /module/Cart2/Cart2.module.php
Code :
[== PHP ==]
public function EraseCart($adddata = '')
{
if( isset($_SESSION[$this->_key]) ) {
cg_ecomm_cart::on_cart_adjusted('before',$adddata);
unset($_SESSION[$this->_key]);
$this->_items = array();
$this->_calculated = 0;
cg_ecomm_cart::on_cart_adjusted('after',$adddata);
}
}
Mais je ne sais pas comment l'appeler depuis un gabarit Smarty. J'ai essayé {$Cart2->EraseCart()} mais ça me donne :
Fatal error: Call to a member function EraseCart() on null in /home/adrien/test/lib/smarty/sysplugins/smarty_internal_templatebase.php(165) : eval()'d code on line 163
Est-ce possible d'appeler une fonction d'un module depuis un gabarit Smarty ?
[Résolu] Comment vider automatiquement le panier Cart2 ? -
adrienj - 17/02/2017
Bon, j'aurais bien aimé pouvoir effacer le panier du client depuis Smarty avec une simple balise du genre {cart2_smarty::EraseCart()} comme on peut le faire avec FEU, mais ça ne semble pas prévu.
J'ai donc résolu mon problème avec une UDT que j'ai appelé {empty_cart} :
Code :
[== PHP ==]
## UDT empty_cart pour CMSMS 2.x
$gCms = CmsApp::get_instance();
$Panier = $gCms->GetModuleInstance('Cart2');
$Panier->EraseCart();
[Résolu] Comment vider automatiquement le panier Cart2 ? -
airelibre - 23/02/2017
Bonjour,
désolé pour la réponse tardive, mais as-tu tenté :
Code :
{cgecomm_erasecart}
?
Regarde la doc de CGEcommerceBase pour cela.
Bonne continuation !
[Résolu] Comment vider automatiquement le panier Cart2 ? -
adrienj - 23/02/2017
Aaahhhh, je n'avais pas pensé à regarder du côté de CGEcommerceBase.
Il me semblait qu'il devait y avoir un truc plus simple qu'une UDT pour cette action basique.
J'ai testé, ça marche.
Merci !