购物车页面中插件的货币转换错误

Currency conversion by plugin is wrong in Cart page

希望有人能帮我解决这个问题! 我使用这个插件 WooCommerce Currency Switcher by PluginUs.NET. 一切正常,直到我进入购物车页面,那里的价格是第二次转换器,首先在添加到购物车之前转换,然后在购物车页面内。

所以我在那里搜索支持页面,发现这个主题暗示了这个 solution 但是当我添加代码时,一切仍然相同,可能是因为代码是三年前制作的,现在不是了新的 Woocommerce 版本支持,这是建议的代码:

    add_action('woocommerce_before_calculate_totals', 'fix_currency_conversion');
function fix_currency_conversion($cart_object){
            global $WOOCS;
            $cur_currency = $WOOCS->current_currency;
            $currencies = $WOOCS->get_currencies();
            $conversion_rate = $currencies[$WOOCS->current_currency]['rate'];
            if($cur_currency == 'HKD'){
                foreach ( $cart_object->cart_contents as $cart_item_key => $cart_item ) {
                    $cart_item['data']->price = $cart_item['data']->price / $conversion_rate;
                }
            }
}

来晚了,但对其他人有帮助。

您需要更改:

$cart_item['data']->price = $cart_item['data']->price / $conversion_rate;

$cart_item['data']->set_price($cart_item['data']->price / $conversion_rate);