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

Comment modifier par programme les prix des produits dans un panier WooCommerce ?

DDD
Libérer: 2024-11-29 15:42:14
original
318 Les gens l'ont consulté

How to Programmatically Change Product Prices in a WooCommerce Cart?

Modifier les prix des produits dans le panier pour WooCommerce 3

Pour modifier les prix des produits dans le panier, vous pouvez utiliser le code suivant :

// Set custom cart item price
add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 1000, 1);

// Handle mini cart custom item price (Optional)
if ( ! is_admin() || defined( 'DOING_AJAX' ) ) :
    add_filter( 'woocommerce_cart_item_price', 'filter_cart_item_price', 10, 3 );
endif;

// Respective Functions
function add_custom_price( $cart ) {
   // Required for WC 3.0+
   if ( is_admin() && ! defined( 'DOING_AJAX' ) )
       return;

   // Avoid hook repetition
   if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
       return;

   // Loop through cart items
   foreach ( $cart->get_cart() as $cart_item ) {
       $cart_item['data']->set_price( 40 );
   }
}

function filter_cart_item_price( $price_html, $cart_item, $cart_item_key ) {
   if ( isset( $cart_item['custom_price'] ) ) {
       $args = array( 'price' => 40 );

       if ( WC()->cart->display_prices_including_tax() ) {
           $product_price = wc_get_price_including_tax( $cart_item['data'], $args );
       } else {
           $product_price = wc_get_price_excluding_tax( $cart_item['data'], $args );
       }
       return wc_price( $product_price );
   }
   return $price_html;
}
Copier après la connexion

Remarques :

  • Utilisez le Hook woocommerce_before_calculate_totals au lieu de woocommerce_before_shipping_calculator.
  • Utilisez la méthode WC_Cart::get_cart() pour obtenir les articles du panier.
  • Utilisez la méthode WC_Product::set_price() pour définir le prix de chaque article du panier. .

Supplémentaire Informations :

  • La fonction add_custom_price() doit être placée dans le fichier function.php de votre thème WordPress.
  • Pour la rendre compatible avec WooCommerce 5.1.x et versions ultérieures , augmentez la priorité du hook dans la fonction add_custom_price() à 1000 voire 2000 si nécessaire.
  • Si vous utilisez des plugins ou les personnalisations qui peuvent entrer en conflit avec les calculs de prix augmentent également la priorité du crochet.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal