// ==================================================
// CHECK CURRENT CURRENCY
// ==================================================
function wpflames_check_currency() {
if ( function_exists( 'get_woocommerce_currency' ) ) {
$current_currency = get_woocommerce_currency();
if ( 'EUR' === $current_currency ) {
echo 'EUR';
} else {
echo 'HUF';
}
}
}
add_shortcode('check_currency', 'wpflames_check_currency');
// ==================================================
// SET GLOBAL ECHACNGE RATE EUR-HUF ÁRFOLYAM
// ==================================================
function set_global_exchange_rate() {
global $eur_huf_exchange_rate;
$eur_huf_exchange_rate = 410;
}
add_action( 'init', 'set_global_exchange_rate' );
// ==================================================
// SET GLOBAL COD FEE AMOUNT - HUF
// ==================================================
function set_global_fee_amount_huf() {
global $cod_fee_amount_huf;
$cod_fee_amount_huf = 800;
}
add_action( 'init', 'set_global_fee_amount_huf' );
// ==================================================
// SET GLOBAL COD FEE AMOUNT - EUR
// ==================================================
function set_global_fee_amount_eur() {
global $cod_fee_amount_eur;
global $cod_fee_amount_huf;
global $eur_huf_exchange_rate;
// Ha 800 HUF az utánvét díj, és 1 EUR = 410 HUF:
$cod_fee_amount_eur = $cod_fee_amount_huf / $eur_huf_exchange_rate;
}
add_action( 'init', 'set_global_fee_amount_eur' );
// ==================================================
// ADD EXTRA FEE TO SPECIFIC PAYMENT GATEWAY => COD
// ==================================================
function add_checkout_fee_for_gateway() {
global $cod_fee_amount_huf, $cod_fee_amount_eur;
// Ellenőrizzük, melyik fizetési módot választotta a felhasználó
$chosen_gateway = WC()->session->chosen_payment_method;
// Csak akkor fut le, ha az utánvétes (COD) fizetési módot választották
if ( $chosen_gateway == 'cod' ) {
// Lekérdezzük az aktuálisan használt pénznemet
$current_currency = get_woocommerce_currency();
// A díj értékének meghatározása az éppen használt pénznem szerint
if ( 'EUR' === $current_currency ) {
$fee_amount = $cod_fee_amount_eur;
} else {
// Alapértelmezett esetben HUF
$fee_amount = $cod_fee_amount_huf;
}
// Hozzáadjuk a plusz díjat a kosárhoz
// A harmadik paraméter határozza meg, hogy adóköteles-e a díj (true/false)
WC()->cart->add_fee( __( 'Utánvét díja', 'woocommerce' ), $fee_amount, false );
}
}
add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_fee_for_gateway' );
// Part 2: reload checkout on payment gateway change
function refresh_checkout_on_payment_methods_change(){
?>
<script type="text/javascript">
(function($){
$( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
$('body').trigger('update_checkout');
});
})(jQuery);
</script>
<?php
}
add_action( 'woocommerce_review_order_before_payment', 'refresh_checkout_on_payment_methods_change' );
Leave a Reply