2017-05-12 8 views
3

Ich versuchte dies zu verwenden, um den ursprünglichen Preis im Warenkorb, aber keine Würfel zu ändern. Ich denke, es funktioniert nicht, weil das Produkt, das ich verwende, ein variables Produkt ist. Die Produkt-ID ist 141 und die Variation ID 142.Ändern Sie den ursprünglichen Preis im Warenkorb für WooCommerce Produktvariante

function sv_change_product_price_cart($price, $cart_item, $cart_item_key) { 
    if (142 === $cart_item['product_id']) { 
     $price = '$50.00 per Unit<br>(7-8 skewers per Unit)'; 
    } 
    return $price; 
} 
add_filter('woocommerce_cart_item_price', 'sv_change_product_price_cart', 10, 3); 

Wie es

Dank funktioniert

Antwort

2

Sie sollten es für eine Produktvariation arbeiten ersetzen müssen $cart_item['product_id'] von $cart_item['variation_id'] zu machen in deinem Zustand.

Diese Funktion wird nur die Anzeige ändern, aber nicht die Berechnung:

// Changing the displayed price (with custom label) 
add_filter('woocommerce_cart_item_price', 'sv_display_product_price_cart', 10, 3); 
function sv_display_product_price_cart($price, $cart_item, $cart_item_key) { 
    if (142 == $cart_item['variation_id']) { 
     // Displaying price with label 
     $price = '$50.00 per Unit<br>(7-8 skewers per Unit)'; 
    } 
    return $price; 
} 

Hier ist die Hakenfunktion, die die Warenkorb Berechnung mit Ihrem Preis ändern:

in
// Changing the price (for cart calculation) 
add_filter('woocommerce_before_calculate_totals', 'sv_change_product_price_cart', 10, 1); 
function sv_change_product_price_cart($cart_object) { 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    foreach ($cart_object->get_cart() as $cart_item) { 
     if (142 == $cart_item['variation_id']){ 
      // Set your price 
      $price = 50; 

      // WooCommerce versions compatibility 
      if (version_compare(WC_VERSION, '3.0', '<')) { 
       $cart_item['data']->price = $price; // Before WC 3.0 
      } else { 
       $cart_item['data']->set_price($price); // WC 3.0+ 
      } 
     } 
    } 
} 

-Code geht function.php Datei Ihres aktiven Child Theme (oder Theme) oder auch in einer beliebigen Plugin Datei.

So werden Sie das bekommen:

enter image description here

Dieser Code wird getestet Anzeige arbeitet auf WooCommerce Version 2.6.x und 3.0+

Verwandte Themen