Une passerelle de paiement que j'utilise n'attend que la monnaie croate. J'essaie donc de mettre à jour le total du panier et sa monnaie en utilisant un filtre lors de la commande si la devise est l'euro. J'ai réussi à changer le total du panier, mais je ne peux pas changer de devise. Comment puis-je le faire dans l'action suivante?
// 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 );
J'ai finalement trouvé une solution https://hotexamples.com/examples/-/WC_Order/set_currency/php-wc_order-set_currency-method-examples.html
$order->set_currency('HRK');