// =========================================================================
// ADD FEE TO SPECIFIC PAYMENT GATEWAY => COD - ONLY FOR PHYSICAL PRODUCT
// =========================================================================
// Part 1: assign fee
add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_fee_for_gateway' );
function add_checkout_fee_for_gateway() {
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// Check if there are non-virtual products
if ( ! $cart_item['data']->is_virtual() ) {
$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'), 510 );
}
}
}
}
// Part 2: reload checkout on payment gateway change
add_action( 'woocommerce_review_order_before_payment', 'refresh_checkout_on_payment_methods_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
}
Leave a Reply