2017-07-06 39 views
1

在我的WordPress電子商務網站我使用WP酒店預訂,酒店房間預訂插件。結帳過程使用WooCommerce完成。根據WooCommerce的自定義產品價格有條件地設置不同的稅率

的問題:我們有不同的pricing.For例如不同的房間:

  • 間房的價格 - 1500
  • 房B價格 - 2700
  • 房C價格 - 2200

對於價格低於2500的房間,GST稅率爲12%,對於2500以上的房間,GST稅率爲18%。

由於我使用WP酒店預訂這個自定義產品(房間管理),我無法使用附加稅類 woocommerce選項設置不同的稅種。

我需要你的幫助來編寫一個函數來檢查房間的價值,然後決定給定房間需要設置哪些稅項。

謝謝

回答

1

這是可以訪問和輕鬆的事情。

1°)您需要在您的WooCommerce稅務設置中創建2個新稅類。在這個例子中,我已經命名稅種爲「Tax 12」和「Tax 18」。然後對於他們每個人,你將不得不設置不同的百分比12%18%

2°)現在這裏是一個自定義函數,它根據產品價格應用一個稅級,這個函數鉤在woocommerce_before_calculate_totals上。我不使用稅收類名稱,,但稅類slu 012,它們以小寫字母和空格替換爲連字符。

所以這裏是代碼:

add_filter('woocommerce_before_calculate_totals', 'change_cart_items_prices', 10, 1); 
function change_cart_items_prices($cart_object) { 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    foreach ($cart_object->get_cart() as $cart_item) { 
     // get product price 
     $price = $cart_item['data']->get_price(); 

     // Set conditionaly based on price the tax class 
     if ($price < 2500) 
      $cart_item['data']->set_tax_class('tax-12'); // below 2500 
     if ($price >= 2500) 
      $cart_item['data']->set_tax_class('tax-18'); // Above 2500 
    } 
} 

代碼放在您的活動子主題(或主題)的function.php文件或也以任何插件文件。

該代碼測試和工程上的WooCommerce版本3+


相關問題