私が使用している支払いゲートウェイは、クロアチアの通貨のみを期待しているので、通貨がユーロの場合、注文のフィルターを使ってカートの合計とその通貨を更新しようとしています。カートの合計数を変更できましたが、通貨を変更できません。次の行動の中でどうすればいいの?
// 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 );
私はついに解決策を見つけました https://hotexamples.com/examples/-/WC_Order/set_currency/php-wc_order-set_currency-method-examples.html
$order->set_currency('HRK');