如何在创建订单操作时以编程方式更改货币?

时间:2018-05-15 作者:Ivan Topić

我使用的一个支付网关只需要克罗地亚货币,因此,如果货币是欧元,我试图通过在下单时使用过滤器来更新购物车总计及其货币。我已成功更改购物车总计,但无法更改货币。如何在下面的操作中完成?

// Set currency
function change_existing_currency() {
    return \'HRK\';
}

function change_total_on_checking($order) {

     // Get order total
    $total = $order->get_total();

     // Change cart total on creating order
    if(get_woocommerce_currency() === \'EUR\') {

        // Change currency somewhere here - currently this doesn\'t work
        add_filter(\'woocommerce_currency\', \'change_existing_currency\', 999, 2);

        // Set new cart total
        $new_total = $total * get_currency_rate(); 
        $order->set_total($new_total);

    }

}
add_action( \'woocommerce_checkout_create_order\', \'change_total_on_checking\', 999, 1 );

1 个回复
最合适的回答,由SO网友:Ivan Topić 整理而成
结束