簡體   English   中英

根據產品類別更改默認產品貨幣

[英]Change default product currency based on a product category

我正在嘗試根據類別更改 Woocommerce 的產品默認貨幣。

就像“音頻”是一個類別,然后將 EUR 設置為貨幣。

我已經嘗試了下面的代碼,但它不起作用:

function change_woocommerce_currency( $currency ) {
    if ( is_product_category( 'audio' ) ) {
        $currency = 'EUR'; 
    }
    return $currency;
}
add_filter( 'woocommerce_currency', 'change_woocommerce_currency' );

需要在產品頁面上更改貨幣價格以及要在購物車和結帳頁面上顯示的貨幣,並且需要以該類別的貨幣進行收費。

首先,您可以使用ACF創建一個自定義字段來存儲 EUR 常規價格(例如:regular_price_eur)

然后,您可以根據類別過濾價格並更改其貨幣符號。

function filter_price( $price, $product ) {
  $price_in_eur = get_field( 'regular_price_eur', $product->get_id() ); // get EUR price from a custom field

  if ( $price_in_eur && is_product_category( 'audio' ) ) {
    return absint( $price_in_eur );
  } else {
    return $price;
  }
}
add_filter( 'woocommerce_product_get_price', 'filter_price', 10, 2 );

function change_currency_symbol( $currency ) {
  if ( is_product_category( 'audio' ) )  {
    return 'EUR';
  }

  return $currency;
}
add_filter( 'woocommerce_currency', 'change_currency_symbol' );

請試試這個

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
    function change_existing_currency_symbol( $currency_symbol, $currency ) {
        global $post, $product;
    
        if ( has_term( 'audio', 'product_cat' ) ) {
            switch( $currency ) {
                 case 'USD': $currency_symbol = 'EUR'; 
                 break;
            }
        }
        return $currency_symbol; // <== HERE
    }
function change_woocommerce_currency( $currency ) {
    $defaultCurrency = 'EUR';
    $categories = [
       'audio'  => 'EUR',
       'mobile' => 'LEK',  
     ];
    $productCategory = 'audio'; // get product's category
    return $categories[$productCategory] ?: $defaultCurrency;
}
add_filter( 'woocommerce_currency', 'change_woocommerce_currency' );

您有多種方法可以做到這一點。 首先,您可以使用一個插件,例如“WooCommerce 每種產品的貨幣”,這可以讓您為任何您想要的項目添加特定的貨幣。

如果你想通過代碼來做,這就是我的做法:

function change_woocommerce_currency( $currency_symbol, $currency ) {
  if ( is_product_category( 'audio' ) ) {
    switch( $currency ) {
      case 'USD': $currency_symbol = 'whatever you want'; 
      break;
      }
    }
    return $currency_symbol;
}
add_filter( 'woocommerce_currency', 'change_woocommerce_currency' );

暫無
暫無

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

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