我正在尝试根据类别更改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>
需要在产品页面上更改币种价格,并在购物车和结帐页面上更改币种,并且需要以该类别的币种收费。
答案 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' );