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:
Dieser Code wird getestet Anzeige arbeitet auf WooCommerce Version 2.6.x und 3.0+