Woocommerce折扣,如果有一定的属性

时间:2014-02-17 09:20:19

标签: php wordpress woocommerce commerce

我的数据库中的每个产品都有一个“pa_producator”属性,我想要以下内容: 当pa_producator等于“Bosch”时,仅对该产品应用10%的折扣,而不是整个购物车。这可能吗?到目前为止,我只有以下代码:

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;
}
}

我如何为这些产品申请折扣?

1 个答案:

答案 0 :(得分:0)

最好在输出之前更新值。所以它适用于所有使用Cart的地方。

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;
    }
}