[Résolu] Comment vider automatiquement le panier Cart2 ?

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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 ?
#1
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 ?
#2
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();
#2
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();
#3
Bonjour,

désolé pour la réponse tardive, mais as-tu tenté :
Code :
{cgecomm_erasecart}
?

Regarde la doc de CGEcommerceBase pour cela.

Bonne continuation !
#3
Bonjour,

désolé pour la réponse tardive, mais as-tu tenté :
Code :
{cgecomm_erasecart}
?

Regarde la doc de CGEcommerceBase pour cela.

Bonne continuation !
#4
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 !
#4
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 !


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)