Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Guide : modifier les prix dans WooCommerce par code

94

Cet article est pour vous qui souhaitez ajouter du code qui ajuste les prix dans votre boutique en ligne WordPress WooCommerce. Vous pouvez soit augmenter les prix, soit les réduire. Et comment et d’où viennent les ajustements, cela dépend entièrement de votre cas. Votre boutique en ligne peut fonctionner avec des remises en pourcentage définies sur chaque utilisateur enregistré, un paramètre global personnalisé dans les paramètres WooCommerce, une somme fixe codée en dur ou quelque chose défini sur chaque produit ou catégorie de produits.

J’ai essayé de rendre le code aussi général que possible afin que vous puissiez l’adapter à votre cas. Dans mon cas, les ajustements de prix proviennent d’un pourcentage de remise ajouté en tant que méta utilisateur.

Le code est mis à jour pour fonctionner avec WooCommerce 3.x et supérieur. Je ne peux pas garantir que cela fonctionnera pour les versions inférieures.

Étape 1 : Créer un emplacement pour votre code

La première étape est facile; vous avez besoin d’un endroit pour ajouter votre code. Cela dépend entièrement de vous. Vous pouvez l’ajouter directement dans les fichiers de votre thème functions.phpou quelque part dans vos fichiers de plug-in. J’aime travailler avec des classes qui garderont tout bien ensemble au même endroit. Par souci de simplicité, je vais mettre la classe dans un sous-répertoire /src/de mon thème, et l’inclure et l’instancier dans functions.php.

require_once(get_stylesheet_directory().'/src/ChangePrices.php'); new ChangePrices();

Modifiez cette étape en fonction de votre cas.

Étape 2 : Décidez comment les ajustements de prix doivent fonctionner

Cette étape est peut-être déjà claire pour vous – c’est là que vous devez savoir comment et où obtenir l’ajustement de prix. L’objectif final doit être un nombre avec lequel vous additionnez, soustrayez, multipliez ou divisez les prix.

Dans mon cas, j’ai une méta utilisateur sur chaque utilisateur qui contient un pourcentage de réduction ; un nombre compris entre 0 et 99. L’administrateur du site peut définir une remise sur chaque utilisateur. Je ne montrerai pas le code pour ajouter le champ méta utilisateur, car cela pourrait ne pas être pour vous et cela se fait facilement avec, par exemple, Advanced Custom Fields.

Dans ma classe, je garde une variable de classe qui, dans le constructeur, sera définie sur un multiplicateur. Selon qu’un utilisateur est connecté ou non, je vais récupérer la remise enregistrée auprès de l’utilisateur et créer un multiplicateur à partir de celui-ci. Par défaut, le multiplicateur doit être 1. Prix 1 = même prix qu’avant. Mais pour une remise de 10 % par exemple, le multiplicateur serait de 0,9. Prix ​​0,9 = prix réduit de 10 %.

Maintenant que j’ai un multiplicateur prêt à l’emploi, il est temps de se pencher sur l’ajustement des prix dans WooCommerce.

Étape 3: Filtres de prix dans WooCommerce

Dans WooCommerce, il existe un filtre pour les types de produits simples, groupés et externes, et un autre pour les types de produits variables. Je vous recommande d’ajouter les deux filtres pour couvrir tous les types de produits. En plus de cela, WooCommerce fonctionne avec trois filtres de prix supplémentaires :

  • Prix ​​réguliers (woocommerce_product_get_regular_priceet woocommerce_product_variation_get_regular_price)
  • Prix ​​de vente (woocommerce_product_get_sale_priceet woocommerce_product_variation_get_sale_price)
  • Le prix actif actuel (woocommerce_product_get_priceet woocommerce_product_variation_get_price). Le prix actif actuel sera extrait du prix normal ou du prix de vente.

Maintenant, vous pouvez simplement filtrer le prix actif actuel et l’appeler un jour, mais cela dépend de la façon dont vous souhaitez gérer l’affichage des prix dans votre boutique en ligne. N’oubliez pas que les produits en solde affichent par défaut l’ancien prix (prix normal) barré et le prix soldé (prix actif) à côté. Si vous filtrez uniquement x_get_priceet qu’un produit est en solde, l’ancien prix sera affiché sans remise.

Pour cette raison, j’ai choisi de filtrer à la fois le prix actuel actif (x_get_price) et le prix normal (x_get_regular_price), car je ne veux pas confondre les utilisateurs de ma boutique en ligne.

Rédaction du filtre de prix

Les quatre filtres feront référence à la même fonction. Dans la fonction, nous multiplions simplement le prix fourni avec la variable de classe. N’oubliez pas que si aucune remise n’est définie, le multiplicateur est de 1, ce qui n’entraîne aucun changement de prix.

Notez que tous les filtres fournissent l’objet produit comme deuxième paramètre. Si vous souhaitez ajuster les prix en fonction des produits, vous pouvez ajuster le code pour le faire.

Si vous consultez votre boutique en ligne tout en étant connecté en tant qu’utilisateur bénéficiant d’une réduction, vous devriez maintenant voir des prix réduits ! Cependant, nous n’avons pas encore tout à fait terminé. WooCommerce a apporté quelques modifications à la version 2.4.7 (en savoir plus ici) qui affectent la tarification dynamique des produits variables.

Gestion des prix variables des produits

Pour que la tarification dynamique fonctionne sur des produits variables, vous devez ajouter les filtres mentionnés dans le billet de blog lié ci-dessus ; woocommerce_variation_prices_price(et le filtre de prix régulier correspondant woocommerce_variation_prices_regular_price) et le filtre woocommerce_get_variation_prices_hash. Le filtre de hachage gère le cache interne de WooCommerce – et nous devons dire à WooCommerce de l’effacer correctement lorsque nous modifions les prix par code.

Les deux premiers filtres de prix suivent la même procédure que adjustPrice(), cependant je leur attribue une fonction différente car les paramètres sont différents. En ce qui concerne la fonction de filtre de hachage, nous devons ajouter au tableau de hachage pour identifier quand le cache doit être effacé. L’ajout de l’ID utilisateur est une bonne idée car le multiplicateur est unique pour chaque utilisateur.

Enfin, ça devrait être ça !

Notez que vous avez accès à l’objet produit complet dans tous les filtres (même objet variation dans les deux derniers). Ceci est utile dans les cas où vous souhaitez ajuster les prix en fonction des informations sur le produit ; comme exclure certains produits de la réduction ou appliquer une réduction en fonction des catégories de produits. Il devrait être assez simple pour vous d’ajuster le code à ce dont vous avez besoin pour votre cas.

Le code final complet

Comme d’habitude, j’espère que vous avez appris quelque chose en suivant ce post étape par étape, mais je vais fournir la classe complète à titre de référence :

Source d’enregistrement: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More