Created
February 16, 2023 13:04
-
-
Save wpflames/f24cff44148ab203668ce048b78f2bee to your computer and use it in GitHub Desktop.
Add extra fee to COD payment gateway
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// ========================================================================= | |
// ADD EXTRA FEE TO SPECIFIC PAYMENT GATEWAY => COD | |
// ========================================================================= | |
// Part 1: assign fee | |
function add_checkout_fee_for_gateway() { | |
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { | |
// Check if there are non-virtual products | |
$chosen_gateway = WC()->session->chosen_payment_method; | |
if ( $chosen_gateway == 'cod' ) { | |
// Note: edit "Fee" and "5" below to control Label and Fee Amount | |
WC()->cart->add_fee( __('Utánvét díja', 'woocommerce'), 150 ); | |
} | |
} | |
} | |
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' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment