Cet article va vous montrer comment faire pour ajouter un champ de saisie dans le panier de votre boutique WooCommerce, permettant aux clients de faire un don avant de finaliser leur commande.
Note : Ce code source vient de James Collings (http://jamescollings.co.uk)
Etape 1 : Créer un produit invisible pour les dons
L’ajout d’un don à votre WooCommerce est possible qu’en créant un produit qui ne figure pas dans le catalogue, et en ayant une classe de taxe à taux zéro.
Voici la procédure :
1. Allez à Produits > Ajouter un produit
2. Mettez le titre « Faire un don » (ou autre)
3. Sur la partie droite, dans l’encart « Publier » choisir sur « Visibilité du catalogue », le mode Caché
4. Dans la section « Données Produits », régler l’UGS sur quelque chose d’unique par exemple « special-don », sous expédition définir la catégorie de l’expédition sur « aucune expédition », si vous avez activé les taxes.
5. Sélectionner « aucun » et juste au cas où mettre la classe d’impôt à taux zéro.
6. Enfin, dans la section de « Données Produits », dans l’onglet Inventaire, assurez-vous que « Vendu séparément » soit coché, un seul don sera autorisé par commande.
Etape 2 : Création des fonctions
Une fois fini de créer le produit pour le don, récupérez son ID (il servira pour définir la variable globale DONATE_ID du code plus bas). Nous allons l’utiliser pour vérifier si un don a déjà été ajouté. Cette fonction parcourt tous les articles dans le panier et vérifie si un produit existe avec notre ID. Si oui, elle renvoie true.
Ces fonctions sont à mettre dans le fichiers functions.php de votre thème.
Montant du don arrondi.
Si vous souhaitez saisir le total de la commande et la donation par défaut à une valeur arrondie, ajouter cette fonction (par défaut, elle n’est utilisée ensuite, il faudra dé-commenter une ligne).
Ajouter formulaire de don
Voici comment ajouter un formulaire à la page du panier, nous allons le faire en « accrochage » dans woocommer_cart_contents et donc sortir notre formulaire de don à la suite du panier et sans qu’aucun don a été précédemment été ajouté.
Traitement du formulaire
Maintenant que nous avons notre formulaire sur le panier, nous allons traiter les données. C’est possible avec add_action(‘init’) et on va vérifier si la variable ‘jc-don‘ a bien été envoyé en $_POST, le cas échéant ajouter la corbeille, et définir la valeur de session pour le montant de votre don.
Quand vous soumettez un don, il devrait apparaître dans la liste des articles dans votre panier, et le formulaire doit se masquer, si vous supprimez le don du panier, il réapparaît. Mais vous devriez remarquer que le don dans le panier affichera le prix qui avait été précédemment entré lorsque le produit a été créé.
Obtenir le prix du don
Pour introduire notre don dans le panier WooCommerce nous utilisons l’action suivante ‘woocommerce_get_price‘. Si l’élément correspond à l’ID, nous allons saisir le don qui est stocké dans la session de l’utilisateur.
Voilà, le panier total et les articles doivent s’afficher avec des totaux corrects et en plus avec le don choisi !
Pour récapituler tout cela, avec ses fonctions, vous avez la possibilité d’ajouter un champs pour que vos clients de WooCommerce puisque effectuer un don en plus de leur commande.
Et cerise sur le gâteau, d’après ce code j’en ai fait un plugin ! J’y ai ajouté des options de personnalisation.
Vous pouvez le télécharger ici :
Ajouter un don dans votre panier WooCommerce (11,5 KiB, 642 hits)
Bonjour Florent
Bien votre extension pour des dons.
Mais est il possible de pouvoir saisir un montant libre défini par le donateur et non pas seulement un montant fixe? Il semble que nous soyons obligé dans votre plugin d’ajuster le don après avoir saisi un montant fixe. Cela ne me semble pas très évident pour un donateur. Merci de votre réponse . Cordialement
Bonjour,
Je viens de tester mon extension, et si vous ne mettez pas de prix sur le produit (coté admin), on peut bien mettre le montant de notre choix.
Cordialement
Florent,
J ‘attend toujours votre réponse et ne peux donc vous envoyer un don pour l’instant.
Merci
Merci de votre réponse. Ceci correspond à ce que nous avions constaté à savoir que nous devons créer un produit puis ajouter un don du montant souhaité. Mais comme nous sommes une association sans produit, nous créons un produit virtuel qui est en fait un don avec seule possibilité de montant fixe puis une fois dans le panier nous ajustons le montant. Ce n’est donc pas ce que nous souhaitons pour nos donateurs qui doivent pouvoir saisir le montant qu’ils souhaitent dans la boutique. Désolé donc ne ne pouvoir poursuivre avec vous.
Bonne continuation et merci quand même.
Bonjour et merci pour ce travail 😉
Le plugin est-il documenté pour sa mise en place et le paramétrage produit exact dans woocommerce ?
Merci,