2017-11-16 18 views
1

WooCommerce에서 장바구니 품목 수에 따라 다른 배송비를 책정하려고합니다.추가 상품에 다른 배송비를 추가하는 방법

예 :

  • 항목 1 $ 5
  • 2 항목 $ 5 + $ 2
  • 3 항목 $ 5 + (2 × 2 $) ... 등등 ...

그래서 첫 번째 항목은 5 달러의 비용을 설정하고 모든 추가 항목은 각각 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; 
} 

:

1) 카트 항목에 따라 운송 계산 비용을 것이 코드를 추가 항목 (총량) 계산 코드는 활성 자식 테마 (또는 테마)의 function.php 파일이나 모든 플러그인 파일에 있습니다.

2) 이제, 일반 운송 설정에서 비용이) 당신의 WooCommerce 배송 설정에서 1 (로 설정됩니다 각 물류 영역에 대한 "고정 요금" 배송 방법을 설정해야합니다. 저장 한 후, 각각의 고정 요금을 사용하지
다음이 고정 요금을 다시 사용 및 저장 :

때때로 당신은 (woocommerce 운송 각각의 영역에 대한 설정에서) 운송 영역 캐시를 갱신해야합니다.
는 신선한 새로운 카트 (시험 전에 그것을 그렇게 빈)

이 코드는 3 + WooCommerce에 테스트를 시작하는 것이 좋습니다 및 작동

그것은 단지 평면 속도를 설정하여 수행 할 수 있습니다
0

... 코드가 필요하지 않습니다.

그냥 ([수량] - 1) --- 비용 쓰기이 규칙에서

...

5 + 2 *을 고정 요금 전달을 활성화