【发布时间】:2020-10-24 10:04:01
【问题描述】:
我需要根据产品类别更改购物车和结帐货币。因此,如果类别是“服装”,那么购物车和结账时的货币应该是欧元(并且费用需要以欧元进行)。否则,如果产品没有附加“服装”类别,则保持默认美元货币。
这段代码基本上改变了“服装”类别的默认货币,但仅在产品页面上,在购物车和结帐时没有更改。我需要在购物车和结帐时更改它,并且收费需要以该货币发生。
add_filter('woocommerce_currency', 'change_existing_currency_symbol', 10, 2);
function change_existing_currency_symbol( $currency ) {
global $post, $product;
if ( has_term( 'clothing', 'product_cat' ) ) {
return 'EUR';
}else{
return $currency;
}
}
我了解购物车和结帐仅允许每种产品使用一种货币。因此,设置一些限制以允许每个购物车只允许一种产品可以这样发生:
add_filter( 'woocommerce_add_to_cart_validation', 'bbloomer_only_one_in_cart', 99, 2 );
function bbloomer_only_one_in_cart( $passed, $added_product_id ) {
wc_empty_cart();
return $passed;
}
【问题讨论】:
-
如果卡上有“服装”产品和非“服装”产品,它需要如何反应?
-
通过限制 - 每个购物车只有一个产品,因为 Woocommerce 购物车只能支持一种货币。
-
add_filter( 'woocommerce_add_to_cart_validation', 'bbloomer_only_one_in_cart', 99, 2 ); function bbloomer_only_one_in_cart( $passed, $added_product_id ) { wc_empty_cart(); return $passed; } -
您是否在 woocommerce 设置中安装并激活了两种货币?
标签: php wordpress woocommerce hook-woocommerce