2017-10-16 6 views
2

Je développe un site avec WooCommerce et j'ai utilisé le plugin Product Addons pour ajouter des champs de texte supplémentaires à l'article acheté (nom, adresse e-mail, numéro de téléphone, etc.) . Quand quelqu'un clique sur "Ajouter au panier", le site ajoute actuellement le produit au panier, actualise la page, mais les données précédentes restent dans les champs. Je veux réinitialiser tous les champs et les rendre vides après que le produit a été ajouté.Comment réinitialiser tous les champs lors de l'ajout à WooCommerce Panier

J'ai essayé d'utiliser cette fonction:

(function($) { 
    $(document.body).on('added_to_cart', function() { 
      $('input').val(''); } 
     ); 
}) (jQuery); 

Toutes les suggestions?

+0

Vous voudrez peut-être regarder ceci: https://stackoverflow.com/questions/6364289/clear-form-fields-with-jquery –

+0

Je ne suis pas sûr que cela fonctionnera, puisque je dois m'assurer que le contenu du formulaire sont soumis au panier avant de réinitialiser les champs. –

Répondre

0

Essayez ce crochet d'action dans votre plugin ou un thème fichier functions.php

add_filter('woocommerce_checkout_get_value', 'misha_clear_checkout_fields_vals'); 

function misha_clear_checkout_fields_vals($input){ 
     return ''; 
} 
+0

Hm. Cela ne semble pas fonctionner. Je cherchais en effet un crochet, merci, mais celui-ci ne vide pas les champs. Peut-être parce que les champs sont générés à partir d'un plugin, pas de Woocommerce lui-même. Les champs ont des noms en tant que tels: name = "addon-484-last-name-3 [0]" et ainsi de suite. –

1

Si la page se rafraîchit littéralement alors il est pas du tout standard. Cela a été fait juste pour mettre à jour le mini-panier dans le coin supérieur droit de votre menu et les produits sont ajoutés via ajax. Dans ce cas, vous ne pouvez pas vider tous les champs d'un événement parce que la page est en cours de rafraîchissement, vous devez écrire le code sous la fonction document.ready, exécuter la fonction $ .each sur la classe ou l'entrée courante et vider l'entrée des champs.

+0

Désolé, je ne suis pas sûr de ce que vous voulez dire. La page ne se rafraîchit pas elle-même, uniquement lorsqu'un internaute clique sur le bouton Ajouter au panier. –

+0

Lorsque vous cliquez sur normal ajouter au panier bouton sur woocommerce normal puis il publie les données du produit et ajoute des produits au panier via formulaire, mais dans votre cas, dès que vous cliquez sur ajouter au panier bouton produits sont ajoutés au panier via ajax et Après le succès, votre javascript recharge la page. C'est ce que je voulais dire en actualisant ou en rechargeant la page. –