Mise à jour de la quantité produit en fonction d'un champ perso

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 1 month ago #355468

Bonjour,

Ok, je vois le problème.
Les deux dropdowns du haut sont des caractéristiques. Lorsque vous changez la variante sélectionnée avec, la zone du bouton d'ajout au panier et rafraîchie (en effet différentes variantes peuvent potentiellement avoir différent stocks, et donc pas le même affichage de la zone du bouton d'ajout au panier).
Pour gérer cela, il faut adapter le code:

<script>
window.hikashop.emptyFields = function() {
  var button = document.queryElement('#hikashop_product_quantity_main button.hikacart');
  if (button) {
    button.addEventListener('click', function() {
      
      var nomPrenomField = document.getElementById('nom_prenom');
      var dateNaissanceField = document.getElementById('date_naissance');
      var infosField = document.getElementById('infos');
      
      if (nomPrenomField) {
        nomPrenomField.value = '';
      }
      
      if (dateNaissanceField) {
        dateNaissanceField.value = '';
      }

      if (infosField) {
        infosField.value = '';
      }
      
    });
  }
}

document.addEventListener('DOMContentLoaded', window.hikashop.emptyFields);
window.Oby.registerAjax(['hkContentChanged'], function(params){
	window.hikashop.emptyFields();
});
</script>

Last edit: 1 year 1 month ago by nicolas.

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

  • Posts: 361
  • Thank you received: 28
  • Hikashop Multisite
1 year 1 month ago #355474

Merci,
mais avec ce code, plus rien ne fonctionne au niveau du vidage des champs, même si je ne choisi rien...


“Si tu ne travaille pas pour tes rêves, quelqu'un t'embauchera pour travailler pour les siens" - Steeve Jobs
"La sagesse, c’est d’avoir des rêves suffisamment grands pour ne pas les perdre de vue quand on les poursuit." - Oscar Wilde

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

  • Posts: 361
  • Thank you received: 28
  • Hikashop Multisite
1 year 1 month ago #355475

Bon, j'ai soumis notre problème à Chat GPT en lui fournissant les infos et les scripts et le problème rencontré.
Voici le script qu'il m'a généré et qui fonctionne. Merci de me dire si ça parait ok pour vous :

<script>
window.hikashop = window.hikashop || {};

window.hikashop.emptyFields = function() {
  // Utiliser querySelector pour cibler le bouton de panier, quel que soit son ID
  var button = document.querySelector('#hikashop_product_quantity_main button.hikacart');
  if (button) {
    button.removeEventListener('click', emptyFieldsAction);  // Supprimer d'abord l'ancien écouteur d'événement
    button.addEventListener('click', emptyFieldsAction);  // Ajouter le nouvel écouteur d'événement
  }
}

// Fonction qui vide les champs
function emptyFieldsAction() {
  var nomPrenomField = document.getElementById('nom_prenom');
  var dateNaissanceField = document.getElementById('date_naissance');
  var infosField = document.getElementById('infos');
  
  if (nomPrenomField) {
    nomPrenomField.value = '';
  }
  
  if (dateNaissanceField) {
    dateNaissanceField.value = '';
  }

  if (infosField) {
    infosField.value = '';
  }
}

// Ajouter le code au chargement de la page
document.addEventListener('DOMContentLoaded', window.hikashop.emptyFields);

// Ré-enregistrer la fonction chaque fois que le contenu de Hikashop est modifié
window.Oby.registerAjax(['hkContentChanged'], function(params){
  window.hikashop.emptyFields();
});
</script>


“Si tu ne travaille pas pour tes rêves, quelqu'un t'embauchera pour travailler pour les siens" - Steeve Jobs
"La sagesse, c’est d’avoir des rêves suffisamment grands pour ne pas les perdre de vue quand on les poursuit." - Oscar Wilde

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 1 month ago #355482

Ca me parait ok oui.

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

Time to create page: 0.064 seconds
Powered by Kunena Forum