簡體   English   中英

woocommerce 應該顯示歐盟相同的價格,但其他國家/地區的凈值

[英]woocommerce should show same price for eu but net worth for other countries

我一直在尋找兩天的解決方案,不幸的是我找不到它。 Woocommerce 應該為歐盟公民顯示相同的總價格,包括通常的國家稅。 但是,對於歐盟以外的第三國,應顯示不含稅的凈價格。

所以如果我使用過濾器add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false'); 一般來說,它在歐盟內部有效,在歐盟外部顯示總價格。

所以我想我首先嘗試在結帳時通過函數確定國家/地區。php 過濾器被激活或停用:

add_action( 'woocommerce_cart_calculate_fees', 'same_price_for_eu' );
function same_price_for_eu(){

   $countries = new WC_Countries();
  
   $eu_countries = $countries->get_european_union_countries();

   $billing_country = get_option( 'billing_country' );
   $shipping_country = get_option( 'shipping_country' );

   if ( in_array( $shipping_country, $eu_countries ) ) {
  add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
    
   } else {
   remove_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
     
   }
}

當然你可以幫助我,因為我不知道我在做什么:-)


編輯:可以解決它!
 add_action( 'woocommerce_cart_calculate_fees', 'same_price_for_eu' ); function same_price_for_eu(){ $countries = new WC_Countries(); $eu_countries = $countries->get_european_union_countries(); if ( in_array( WC()->customer->get_shipping_country(), $eu_countries) ){ add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false'); } else { remove_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false'); } }

您的解決方案幾乎是正確的。 稅收計算仍然關閉。 我檢查了購物車,在更改國家/地區時稅收計算錯誤。 但是由於您的努力,我創建了這個正確的工作解決方案:

add_action('woocommerce_adjust_non_base_location_prices', 'so67632352_woocommerce_adjust_non_base_location_prices');

function so67632352_woocommerce_adjust_non_base_location_prices()
{
    $countries = new WC_Countries();
    $eu_countries = $countries->get_european_union_countries();

    if (in_array(WC()->customer->get_shipping_country(), $eu_countries)) {
        return false;
    } else {
        return true;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM