2014-02-17 107 views
0

我的數據庫中的每個產品都有一個「pa_producator」屬性,我想要以下東西: 當pa_producator等於「Bosch」時,僅對該產品應用10%的折扣,而不是整車。這可能嗎?到目前爲止,我只有以下代碼:Woocommerce折扣如果有某些屬性

add_action('woocommerce_before_cart_table', 'discount_producer'); 
function discount_producer() { 
global $woocommerce; 
$test = $woocommerce->cart->get_cart(); 
foreach($test as $product) { 
    $test = get_the_terms($product['product_id'], 'pa_producator'); 
    $producator = $test[0]->name; 
} 
} 

我該如何爲這些產品申請折扣?

回答

0

在任何輸出之前更新值更好。所以它適用於使用購物車的所有地方。

add_action('woocommerce_cart_loaded_from_session', 'check_cart_items', 99, 1); 

搜索此操作。這是在購物車被創建之後調用的。然後,您可以調整購物車中每件商品的價格。你已經在嘗試的方式也一樣。

public function check_cart_items($cart) { 
    foreach ($cart->cart_contents as $key => $product) { 
     // find attribute for current product 
     // .. do stuff 
     $cart->cart_contents[ $key ]['data']->price = $new_price; 
     $cart->cart_contents[ $key ]['data']->regular_price = $price; 
     $cart->cart_contents[ $key ]['data']->sale_price = $price; 
    } 
}