Afficher certains modules uniquement quand le panier est vide

  • Posts: 358
  • Thank you received: 18
  • Hikashop Business
3 weeks 3 days ago #313302

-- HikaShop version -- : 4.2.2
-- Joomla version -- : 3.9.13
-- PHP version -- : 7.3

Bonjour,

J'utilise Advanced Module Manager.

Avec cette extension je peux théoriquement afficher certains modules (personnalisés de Joomla ou autres) uniquement quand le panier d'Hikashop est vide, en ajoutant la ligne de code PHP qui convient : "Si le panier est vide (via code PHP qui interroge le panier Hikashop), alors affiche ce module".

Mais quelle code PHP utiliser "pour interroger le panier" ?

Last edit: 3 weeks 2 days ago by lesyeux.

Please Log in or Create an account to join the conversation.

  • Posts: 67676
  • Thank you received: 10046
  • MODERATOR
3 weeks 3 days ago #313303

Bonjour,

Euhh, il faudrait un peu plus de contexte. Où avez vous trouvez cette information ? Pouvez-vous fournir l'URL ? Et où voulez vous ajouter ce code PHP ? Pouvez-vous fournir une capture de la page ?

Please Log in or Create an account to join the conversation.

  • Posts: 358
  • Thank you received: 18
  • Hikashop Business
3 weeks 3 days ago #313320

C'est une option disponible avec la version "pro" de Advanced Module Manager. Je l'ai déjà utilisée, avec quelque chose de très simple. L'idée est de d'afficher certains modules d'information contextuelle, lorsque le panier est vide.

www.regularlabs.com/extensions/advancedm...ent-types-custom-php

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 67676
  • Thank you received: 10046
  • MODERATOR
3 weeks 3 days ago #313321

Vous pouvez utiliser ce code:

if(!defined('DS'))
	define('DS', DIRECTORY_SEPARATOR);
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
	return true;
$cartClass = hikashop_get('class.cart');
$cart = $cartClass->getFullCart();
return (empty($cart) || empty($cart->cart_id) || empty($cart->products));

The following user(s) said Thank You: lesyeux

Please Log in or Create an account to join the conversation.

  • Posts: 358
  • Thank you received: 18
  • Hikashop Business
3 weeks 2 days ago #313349

Merci, ça fonctionne.

Il faut rafraichir la page pour que le module s'affiche ou ne s'affiche plus, mais ce n'est pas important pour ce que je veux en faire.

The following user(s) said Thank You: Philip

Please Log in or Create an account to join the conversation.

  • Posts: 358
  • Thank you received: 18
  • Hikashop Business
3 weeks 2 days ago #313351

Ça fonctionne aussi très bien avec ReReplacer du même éditeur. Là aussi, l'effet souhaité (remplacement d'un élément n'importe où sur la page) ne se produit que quand on change de page ou que l'on rafraichit la page courante.

Mais il y a peut-être une solution en PHP, puisque avec ReReplacer Pro je peux effectuer un remplacement qui utilise du code PHP (par exemple pour afficher un texte en utilisant "JText" : <?php echo JText::_('PROCEED_TO_CHECKOUT'); ?>)

Please Log in or Create an account to join the conversation.

  • Posts: 67676
  • Thank you received: 10046
  • MODERATOR
3 weeks 2 days ago #313354

Bonjour,

Faire que le rafraîchissement d'une zone de la page se fasse lors de l'ajout au panier nécessiterait du développement avec un mix PHP/javascript avec requètes AJAX, etc et pas juste quelques lignes de PHP. Donc pas impossible, mais pas avec un peu de bidouillage.

Please Log in or Create an account to join the conversation.

  • Posts: 358
  • Thank you received: 18
  • Hikashop Business
3 weeks 2 days ago #313371

Je m'en doute bien. Mais pour l'instant le résultat est suffisant pour mes besoins, même si on peut toujours faire mieux. Merci de votre aide précieuse.

Please Log in or Create an account to join the conversation.

Time to create page: 0.067 seconds
Powered by Kunena Forum