2017-10-16 7 views
2

私は、カートの合計パーセンテージ、フラットレートと製品の種類ごとの量に基づいて、送料を削減する方法を探しています...woocommerce条件付き配送コストの削減カートの金額と商品数に基づいて

6製品の

:均一の配送料20€

  • 総カートは120€です|配送料=定額料金 - 合計カート10%| 20 - 12 = 8€
  • 合計カートは180€です|配送料=定額料金 - 合計カート10%| 20 - 18 = 2€
  • 合計カートは220€です|配送料=定額料金 - 合計カート10%| 20から22 = 0€

12製品について:合計カート120€で30€

  • フラット出荷率|配送料=定額料金 - 合計カート10%| 30 - 12 = 18€
  • 合計カートは180€です|配送料=定額料金 - 合計カート10%| 30 - 18 = 12€
  • 合計カートは220€です|配送料=定額料金 - 合計カート10%| 30 - 22 = 8€

どのようにすることができますか?これは、プラグインなしで行うことができます

+0

このプラグインは、出荷時に提供される割引にはかなり柔軟です。 https://codecanyon.net/item/woocommerce-dynamic-pricing-discounts/7119279 –

答えて

0

...

1)あなたは「定額」方式のため1の量を設定するために、各出荷ゾーンのWooCommerce出荷設定で最初に必要になります。

enter image description here

この金額は、20€1から11個のアイテムに、30€から12個以上のアイテムに変更されます。この金額はカートの合計金額の10%減額されます。そして、woocommerce_package_ratesフィルターフックに引っかけカスタム関数を使用して


2)は、あなたがカートのアイテム数に及びカートの合計に基づいて、郵送料の割引を行うことができるようになります。ここで

はそのコードです:

add_filter('woocommerce_package_rates', 'custom_package_rates', 10, 2); 
function custom_package_rates($rates, $packages) { 
    if (is_admin() && ! defined('DOING_AJAX')) return; 

    // Get some cart data and set variable values 
    $cart_count = WC()->cart->get_cart_contents_count(); 
    $cart_total = WC()->cart->cart_contents_total; 
    $cart_10_percent = $cart_total * 0.1; 
    $flat_rate_value = 20; // Default "Flat rate" value 

    foreach($rates as $rate_key => $rate_values) { 
     $method_id = $rate_values->method_id; 
     $rate_id = $rate_values->id; 

     if($method_id == 'flat_rate'){ 
      if($cart_count < 6) 
       $cart_10_percent = 0; // No percent discount 
      elseif($cart_count >= 12) 
       $flat_rate_value = 30; // "Flat rate" value for 12 or more items 

      $rate_cost = $flat_rate_value > $cart_10_percent ? $flat_rate_value - $cart_10_percent : 0; 

      // Set the new calculated rate cost 
      $rates[$rate_id]->cost = number_format($rates[$rate_id]->cost * $rate_cost, 2); 

      // Taxes rate cost (if enabled) 
      $taxes = array(); 
      foreach ($rates[$rate_id]->taxes as $key => $tax){ 
       if($tax > 0){ // set the new tax cost 
        // set the discounted tax cost 
        $taxes[$key] = number_format($tax * $rate_cost, 2); 
       } 
      } 
      $rates[$rate_id]->taxes = $taxes; 
     } 
    } 
    return $rates; 
} 

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

WooCommerce 3で動作確認済みです。


(時には必要)出荷キャッシュを更新:まず、あなたのカートを空にする
1)。
2)このコードは、あなたのfunction.phpファイルに既に保存されています。
3)送料ゾーンの設定で、「定額」(たとえば)と「保存」のいずれかを無効にします。その後、その「定額」と「保存」を再度有効にします。 これで完了です。テストすることができます。

+0

メルキュールロイック、敬意を表するパフェインシ! – Alain

関連する問題