根据产品类别更改默认产品货币

时间:2020-10-20 11:40:16

标签: php wordpress woocommerce hook-woocommerce

我正在尝试根据类别更改Woocommerce的产品默认货币。

如果“音频”是一个类别,则将EUR设置为货币。

我已经尝试了下面的代码,但无法正常工作:

<div class="outcontainer">
    <div class="container">00:00:00</div>

    <div class="buttons">
      <button class="start">Start</button>
      <button class="lapcrono">Lap</button>
      <button class="pause">Pause</button>
      <button class="reset">Reset</button>
      <button class="resetlaps">Reset Laps</button>
    </div>

    <ul class="laps">
      
    </ul>
  </div>
  
  <script src="main.js"></script>

需要在产品页面上更改币种价格,并在购物车和结帐页面上更改币种,并且需要以该类别的币种收费。

4 个答案:

答案 0 :(得分:1)

首先,您可以使用ACF创建一个自定义字段来存储欧元常规价格(例如: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' );

答案 1 :(得分:0)

请尝试

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
    }

答案 2 :(得分:0)

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' );

答案 3 :(得分:-1)

您有多种方法可以做到这一点。首先,您可以使用一个插件,例如“每种产品的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' );