Heim > Backend-Entwicklung > PHP-Tutorial > Wie ändere ich Produktpreise in einem WooCommerce-Warenkorb programmgesteuert?

Wie ändere ich Produktpreise in einem WooCommerce-Warenkorb programmgesteuert?

DDD
Freigeben: 2024-11-29 15:42:14
Original
288 Leute haben es durchsucht

How to Programmatically Change Product Prices in a WooCommerce Cart?

Produktpreise im Warenkorb für WooCommerce 3 ändern

Um Produktpreise im Warenkorb zu ändern, können Sie Folgendes verwenden Code:

// 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;
}
Nach dem Login kopieren

Hinweise:

  • Verwenden Sie den Hook woocommerce_before_calculate_totals anstelle von woocommerce_before_shipping_calculator.
  • Verwenden Sie WC_Cart::get_cart() Methode, um den Warenkorb zu erhalten Artikel.
  • Verwenden Sie die Methode WC_Product::set_price(), um den Preis für jeden Warenkorbartikel festzulegen.

Zusätzliche Informationen:

  • Die Funktion add_custom_price() sollte in der Datei „functions.php“ Ihres WordPress-Themes platziert werden.
  • Zu erstellen Wenn es mit WooCommerce 5.1.x und höher kompatibel ist, erhöhen Sie die Hook-Priorität in der Funktion add_custom_price() bei Bedarf auf 1000 oder sogar 2000.
  • Wenn Sie Plugins oder Anpassungen verwenden, die mit den Preisberechnungen in Konflikt geraten könnten, erhöhen Sie den Hook auch Priorität.

Das obige ist der detaillierte Inhalt vonWie ändere ich Produktpreise in einem WooCommerce-Warenkorb programmgesteuert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage