php - 根据产品类别更改结帐货币
问题描述
我需要根据产品类别更改购物车和结帐货币。因此,如果类别是“服装”,那么购物车和结账时的货币应该是欧元(并且费用需要以欧元进行)。否则,如果产品没有附加“服装”类别,则保留默认美元货币。
此代码基本上更改了“服装”类别的默认货币,但仅在产品页面上,在购物车和结帐时不会更改。我也需要在购物车和结帐时更改它,并且费用需要发生在那个货币。
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;
}
解决方案
我做了一些研究,在按类别或按产品动态更改货币时,还有很多额外的复杂性。
我假设,购物车仍然需要计算总数,并提供 1 种结帐货币。这意味着,总数也必须进行转换。
您将在挖掘此插件的代码时找到最佳答案……但我警告您,这比更改符号要复杂得多。
推荐阅读
- flutter - 如何在 Flutter 中为 Wrap 渲染特定数量的行?
- python - python列表上的NP.FFT
- c++ - 在 Boost 序列化中展平嵌套命名值对
- javascript - 如何在找到一组 id 的 api 中等待循环完成?SailsJs
- vue.js - 计算函数运行而不调用它
- android - 在 Manifest [Android] 中找不到权限
- android - 从改造中调用 API 时出现未知错误
- wordpress - WordPress last_modified 改变了什么
- svn - Tortoise SVN 无法与 Netbeans 11 一起使用
- html - HTML5 视频 webOS