2016-03-22 29 views
0

In dieser Frage WooCommerce: Add product to cart with price override? können wir den Preis für alle Produkte im Warenkorb ändern.Warenkorb Inhalt für bestimmte Produkttyp in WooCommerce?

Was ich brauche, ist nur Produkte mit spezifischen benutzerdefinierten Typ "Auktion" zu ändern und nicht den Rest der Produkte zu ändern.

Hier ist der Code Ich benutze ::

add_action('woocommerce_before_calculate_totals', 'add_custom_price'); 

function add_custom_price($cart_object) { 
    $custom_price = 10; // This will be your custome price 
    foreach ($cart_object->cart_contents as $key => $value) { 
     $value['data']->price = $custom_price; 
    } 
} 

Ich versuchte ::

if ($value['product_type'] == 'auction') { 
    $value['data']->price = $custom_price; 
} 

Antwort

0

Wenn ich richtig rememeber, ist $value['data'] das Produkt Objekt.

So sollten Sie in der Lage sein, die is_type() Methode verwenden:

if($value['data']->is_type('simple')){ 
    // a simple product 
} elseif($value['data']->is_type('variable')){ 
    // a variable product 
} 

Vergessen Sie nicht, dass Sie immer var_dump($cart_object) oder besser verwenden können noch error_log(json_encode($cart_object)) (erfordert WP_DEBUG_LOG aktiviert sein!) Auf einen Blick zu bekommen, was in ist Die Variable.

+0

Sie haben Recht, aber das funktioniert nicht für benutzerdefinierte Produkttyp und ich weiß nicht wie! Kannst du mir helfen? – Yamona

+0

Wenn dies korrekt ist (ich konnte es nicht testen, weil ich beschäftigt war), dann sollte es für einen ordnungsgemäß erstellten benutzerdefinierten Produkttyp gut funktionieren. Bitte bearbeiten Sie Ihre Frage, um mehr von Ihrem Code zu teilen. Bitte bestätigen Sie auch, dass Sie die Methode 'is_type()' ausprobiert haben, die sich sehr von dem Code unterscheidet, den Sie in Ihrer Frage geschrieben haben. – helgatheviking

Verwandte Themen