Maison > développement back-end > tutoriel php > Comment puis-je modifier par programme les prix des produits dans WooCommerce 3 ?

Comment puis-je modifier par programme les prix des produits dans WooCommerce 3 ?

Mary-Kate Olsen
Libérer: 2024-12-08 03:24:10
original
723 Les gens l'ont consulté

How Can I Programmatically Change Product Prices in WooCommerce 3 ?

Modifier les prix des produits via un hook dans WooCommerce 3

La plateforme WooCommerce propose divers hooks pour modifier les prix des produits. Bien que la solution présentée à l'aide de add_filter('woocommerce_get_regular_price') et add_filter('woocommerce_get_price') fonctionne pour des produits simples, elle rencontre des limites lorsqu'il s'agit de produits à variantes.

Prix des produits à variantes

Pour ajuster les prix des produits de variation, les crochets mis à jour suivants sont recommandé :

  • Simple, groupé et externe Produits :

    • woocommerce_product_get_price
    • woocommerce_product_get_regular_price
  • Variations :

    • woocommerce_product_variation_get_regular_price
    • woocommerce_product_variation_get_price
  • Variable Gamme de produits :

    • woocommerce_variation_prices_price
    • woocommerce_variation_prices_regular_price

Implémentation du plugin

Pour implémenter ces hooks au sein d'un plugin, considérez ce qui suit :

add_filter('woocommerce_product_get_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2);

add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2);

add_filter('woocommerce_variation_prices_price', 'custom_variable_price', 99, 3);
add_filter('woocommerce_variation_prices_regular_price', 'custom_variable_price', 99, 3);

function custom_price($price, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}

function custom_variable_price($price, $variation, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}
Copier après la connexion
Copier après la connexion

Implémentation du thème

Si vous préférez une approche basée sur un thème, incluez le code suivant dans votre fichier function.php :

add_filter('woocommerce_product_get_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2);

add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2);

add_filter('woocommerce_variation_prices_price', 'custom_variable_price', 99, 3);
add_filter('woocommerce_variation_prices_regular_price', 'custom_variable_price', 99, 3);

function custom_price($price, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}

function custom_variable_price($price, $variation, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}
Copier après la connexion
Copier après la connexion

Notes supplémentaires et Améliorations

  • Widget de tarification : Pour manipuler les valeurs minimales et maximales du widget de filtre de prix, pensez à utiliser les hooks suivants : woocommerce_price_filter_widget_min_amount et woocommerce_price_filter_widget_max_amount.
  • Vente de produits Tarification : Des hooks spécifiques existent pour les prix de vente : woocommerce_product_get_sale_price, woocommerce_variation_prices_sale_price et woocommerce_product_variation_get_sale_price.
  • Mise en cache des prix : Les prix de variation mis en cache dans WooCommerce 3 doivent être pris en compte. Le filtre add_filter('woocommerce_get_variation_prices_hash') est recommandé pour gérer efficacement la mise en cache des prix.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal