2017-11-16 16 views
1

WooCommerceでは、カート商品数に基づいて異なる送料を設定しようとしています。追加商品の別の送料を追加するには

例:

  • 1アイテム$ 5
  • 2アイテム$ 5 + $ 2
  • 3項目$ 5 +(2×2 $)...にとそう...

だから最初のアイテムは5ドルのコストを設定し、すべての追加アイテムはそれぞれ2ドルを追加します。

これは可能ですか?

答えて

1

更新 - 2つのステップ:

1)は、カート項目に基づいて、あなたの船積みの計算コストを行います。このコードを追加します(品目の合計数量をを数える)

add_filter('woocommerce_package_rates', 'progressive_flat_rate_cost_calculation', 10, 2); 
function progressive_flat_rate_cost_calculation($rates, $package) 
{ 
    // The cart count (total items in cart) 
    $cart_count = WC()->cart->get_cart_contents_count(); 
    $taxes = array(); 

    $cost = 5; // Cost for the 1st item 
    $other = 2; // Cost for additional items 

    // Calculation 
    if($cart_count > 1) 
     $cost += ($cart_count - 1) * $other; 

    // Iterating through each shipping rate 
    foreach($rates as $rate_key => $rate_values){ 
     $method_id = $rate_values->method_id; 
     $rate_id = $rate_values->id; 
     // Targeting "Flat Rate" shipping method 
     if ('flat_rate' === $method_id) { 
      // Set the new calculated rate cost 
      $rates[$rate_id]->cost = number_format($rates[$rate_id]->cost * $cost, 2); 
      // Taxes rate cost (if enabled) 
      foreach ($rates[$rate_id]->taxes as $key => $tax){ 
       if($rates[$rate_id]->taxes[$key] > 0){ // set the new tax cost 
        $taxes[$key] = number_format($rates[$rate_id]->taxes[$key] * $cost, 2); 
        $has_taxes = true; 
       } else { 
        $has_taxes = false; 
       } 
      } 
      if($has_taxes) 
       $rates[$rate_id]->taxes = $taxes; 
     } 
    } 
    return $rates; 
} 

コードはあなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイル、またはすべてのプラグインファイルにあります。

2)さて、一般的な出荷設定では、コストは()あなたのWooCommerce出荷設定で1に設定される各配送ゾーンの「定額」配送方法を設定する必要があります。 、保存し、各フラットレートを無効に
、この定額をバック有効にして保存します。

ときには(woocommerce出荷各ゾーンの設定で)出荷ゾーンキャッシュをリフレッシュする必要があります。
は、新鮮な新しいカート(試験前のそれので空)

このコードは3+ WooCommerce上でテストされた上で起動するより良いですし、作品

それが唯一のフラットレートを設定することによって行うことができ
0

...コードは不要です。

だけ--- ...コストで

は、このルールを記述

5 + 2 *([数量] - 1)定額出荷を有効

関連する問題